QRegularExpression для номера телефона
Я пытаюсь использовать регулярные выражения для проверки телефонных номеров, но я просто допускаю, чтобы все числа были приняты, а не только 10, мое регулярное выражение - ^[0-9]{10}, которое должно просто разрешать 10 номеров 0-9. мои тестовые строки были 1234567890, которые прошли и 703482062323, которые также прошли. Что я могу сделать, чтобы исправить эту проблему?
Код, который я использую для проверки регулярного выражения:
QRegularExpression Phone_Num("^[0-9]{10}"); // 10 numbers in a phone number
QRegularExpressionMatch match = Phone_Num.match("12345612312312312121237890");
qDebug() << match.hasMatch();
2 ответа
Решение
При условии, что вы действительно хотите ровно 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