电话号码的QRegularExpression

QRegularExpression For Phone Number

本文关键字:QRegularExpression 电话号码      更新时间:2023-10-16

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

我用来测试正则表达式的代码是

QRegularExpression Phone_Num("^[0-9]{10}"); // 10 numbers in a phone number
QRegularExpressionMatch match = Phone_Num.match("12345612312312312121237890");
qDebug() << match.hasMatch();

假设您确实想要准确10:

^[0-9]{10}$

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

#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();
}

输出:

false
true
false
false

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

相关文章:
  • 没有找到相关文章