Регулярное выражение для номера телефона и исключая десятичные числа

Я использую это регулярное выражение для распознавания телефонных номеров в моем приложении. "\\+?\\d{7,23}" Но это не может исключать десятичные числа, такие как 3.1415926。

Как изменить это регулярное выражение, чтобы оно могло распознавать телефонные номера и не давать мне десятичные числа, такие как 3.1415926, 99.9999999。

В этом случае "1415926" и "9999999" будут распознаны как телефонный номер, что нежелательно.

Одним словом, я хочу отклонить цифры с помощью "." быть частично распознанным как номер телефона. Или номер телефона не должен быть заменен на "." или следуйте "."

Благодарю.

Наконец, я решил эту проблему, используя

1 ответ

Решение

Попробуйте это регулярное выражение:

^\+?((?!\.)\d){7,23}$

Объяснение:

\+                string starts with an optional +
((?!\.)\d){7,23}  negative lookahead asserts that string contains between 7 and 23
                  numbers, each of which is not a dot

Демо здесь:

Regex101

Другие вопросы по тегам