我试图使用正则表达式来验证电话号码,但它只允许接受所有号码,而不仅仅是10,我的正则表达式是^ 0-9 { 10 },它应该只允许10个数字0-9。我的测试字符串是1234567890通过了,703482062323也通过了。我能做些什么来解决这个问题?
用于测试正则表达式的代码im是
QRegularExpression Phone_Num("^[0-9]{10}"); // 10 numbers in a phone number
QRegularExpressionMatch match = Phone_Num.match("12345612312312312121237890");
qDebug() << match.hasMatch();发布于 2015-03-28 16:43:41
假设您确实想要, 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
falsehttps://stackoverflow.com/questions/29319604
复制相似问题