当前位置: 首页 > 知识库问答 >
问题:

Qt C:行编辑仅接受字母数字字符、破折号和下划线

储俊英
2023-03-14

我正在寻找限制行编辑的方法,以仅接受字母数字字符、破折号和下划线(整行可能只有一个破折号和一个下划线),没有空格。我正在查看RegExp,但后来我留下了这个选项,因为我发现一些博客文章解释说RegExp真的很慢。现在我不知道限制行编辑的最佳方法是什么,所以输出将是我想要的。

你推荐我什么?

共有1个答案

梁宪
2023-03-14

您应该阅读函数QLineEdit::setValidator文档和类QValidator文档。您可以定义自己的验证器类(继承QValidator)并将其对象实例传递给QLineEdit对象(使用setValidator函数)。

 类似资料:
  • 问题内容: 我知道如何遍历字符串中的所有字符,但是我正在寻找一种更优雅的方法。 问题答案: 正则表达式只需很少的代码即可解决问题:

  • 我正在编写文件上传页面脚本(Javascript)。用户从他们的机器中选择一个文件。 我需要从包含文件名的字符串中删除任何不是: 一封信 我一直在尝试使用Javascript替换函数来删除不必要的字符。我可以使用以下方法删除所有非字母数字部分: 这会留下字母、数字和下划线,但我还需要允许破折号和句点。我不确定选择破折号和句点的正确正则表达式是什么。

  • 所有: 我想做的是使用正则表达式匹配一个只允许[a-Za-z0-9_-]的字符串,格式应该是: 仅从[A-Za-z0-9]开始,然后是[A-Za-z0-9_-]。中间可能有[_-],但如果有,则只允许一次(两个_-,但每个都只有一次机会),并以[A-Za-z0-9]结束。 我只知道如何匹配字母数字字符、破折号和下划线,但不知道如何限制它们的出现时间。 谢谢

  • 问题内容: 我希望用户仅输入字母或空格(如果用户输入其他字符),我想给jOptionPane消息,我已经搜索过,并且尝试了以下代码 但是现在无论我输入什么都会给出错误 现在我更改了代码 现在它仅在用户输入数字时发出消息。我该如何解决 问题答案: 使用一个,这是我制作的一个示例,它将仅接受字母字符和空格:

  • 我正在尝试构建一个正则表达式来验证用户名,该用户名将包含字母数字字符,并且应该允许<代码>(dot)(撇号)和-(破折号),我尝试了以下正则表达式,但它们不起作用 <代码>/^[a-zA-Z0-9\.-]$/<代码> 请帮帮忙

  • 我创建了以下正则表达式: 它应该接受字母数字、空格和撇号。输入应至少为1个字符,最多为24个字符。但它也只接受带撇号和空格的输入(例如,