Я пытаюсь использовать регулярные выражения для проверки телефонных номеров, но я просто допускаю, чтобы все числа были приняты, а не только 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();
при условии, что вы действительно хотите именно так 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