首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >电话号码的QRegularExpression

电话号码的QRegularExpression
EN

Stack Overflow用户
提问于 2015-03-28 16:31:34
回答 2查看 1.5K关注 0票数 0

我试图使用正则表达式来验证电话号码,但它只允许接受所有号码,而不仅仅是10,我的正则表达式是^ 0-9 { 10 },它应该只允许10个数字0-9。我的测试字符串是1234567890通过了,703482062323也通过了。我能做些什么来解决这个问题?

用于测试正则表达式的代码im是

代码语言:javascript
复制
QRegularExpression Phone_Num("^[0-9]{10}"); // 10 numbers in a phone number
QRegularExpressionMatch match = Phone_Num.match("12345612312312312121237890");
qDebug() << match.hasMatch();
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-28 16:43:41

假设您确实想要 10:

^0-9{10}$

匹配行尾,这样它就不匹配超过10行的子集。

代码语言:javascript
复制
#include <QRegularExpression>
#include <QDebug>

int main() {
    QRegularExpression re("^[0-9]{10}$");
    qDebug() << re.match("12345678901123").hasMatch();
    qDebug() << re.match("1234567890").hasMatch();
    qDebug() << re.match("12345678").hasMatch();
    qDebug() << re.match("123123123a").hasMatch();
}

产出:

代码语言:javascript
复制
false
true
false
false
票数 1
EN

Stack Overflow用户

发布于 2015-03-28 16:42:47

请看。您的正则表达式是可以的,因为每一个包含至少10位数的字符串都会通过。您可以使用这样的分组:([0-9]{10}),然后以某种方式提取组(参见)。

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

https://stackoverflow.com/questions/29319604

复制
相关文章

相似问题

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