首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用QRegExp

如何使用QRegExp
EN

Stack Overflow用户
提问于 2012-11-28 04:54:23
回答 3查看 2.6K关注 0票数 0

以下部分不能正常工作:

代码语言:javascript
复制
  QRegExp exp ("[À-Ÿà-ÿA-Za-z0-9\\-\\_]+");
  if (!formatedName.contains(exp)) {
    success = false;
  }

这段代码用于验证用户输入的字符串。它应该只接受数字、法语和英语字符、破折号和下划线。

实际上,代码几乎可以正常工作了。唯一的问题是,如果我还输入了合法字符,则接受特殊字符。因此,字符串"!@#@“将返回false,而字符串”地狱!@^ooo“将返回true。

我应该如何正确地使用正则表达式来只接受我的正则表达式?

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-11-28 04:57:05

我建议添加^$,以表明表达式应该覆盖整个字符串,而不只是其中的一部分。

代码语言:javascript
复制
QRegExp exp ("^[À-Ÿà-ÿA-Za-z0-9\\-\\_]+$");
  if (!formatedName.contains(exp)) {
    success = false;
  }
票数 1
EN

Stack Overflow用户

发布于 2012-11-28 04:57:22

您可以指定开始和结束分隔符,以阻止正则表达式成功地将字符串与其中包含的正则表达式的任何部分进行匹配。

代码语言:javascript
复制
"^[À-Ÿà-ÿA-Za-z0-9\\-\\_]+$"

这将确保检查整个字符串。

票数 1
EN

Stack Overflow用户

发布于 2012-11-28 06:47:08

您还可以使用QRegExp::exactMatch(),这在本质上等同于用^$字符替代您的正则表达式。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13592860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档