@MaxLich
java developer

Какое регулярное выражение подойдёт для проверки телефонного номера на правильность?

Пытаюсь составить регулярное выражение, и до конца не получается это сделать. Короче, условия такие:
-номер должен начинаться с плюса
-в номере должно быть 12 цифр
-в номере может быть одна пара скобок
-если есть пара скобок, то между ними должно быть строго 3 цифры
-номер должен оканчиваться на цифру.

Вот что пока наваял:
^\+\d{1,9}((\(\d{3}\))|\d{3})\d{1,9}$
Если после первой группы ставить что-то вроде {12,14}, то вообще не работает. Но не знаю, как ещё можно проверить, что в номере именно 12 цифр.
  • Вопрос задан
  • 140 просмотров
Решения вопроса 1
@MaxLich Автор вопроса
java developer
Решил эту задачку. В итоге, оказалось, что необязательно всё делать на регулярках. Поэтому использовал некоторые проверку с помощью обычных средств языка, но конечные проверки реализовал с помощью регулярок.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
qork
@qork
{ background: #F00B42 }
\+\d(\(?)\d{3}(\)?)\d{7}$
И делать проверку на group 1 и group 2, чтобы если хоть одна группа true, то и другая должна быть true.
https://regex101.com/r/LyEO5W/1

В моем примере 11 цифр, но несложно будет изменить на любое количество.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы