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

0

Решение

при условии, что вы действительно хотите именно так 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
1

Другие решения

Увидеть этот, Пожалуйста. Ваше регулярное выражение в порядке, как каждая строка содержащий пройдет не менее 10 цифр. Вы можете использовать группировку следующим образом: ([0-9]{10}) а затем извлечь группу как-то (см. этот).

0

По вопросам рекламы [email protected]