Улучшить регулярное выражение для подтверждения номера телефона - PullRequest
1 голос
/ 03 сентября 2011

Я создал регулярное выражение для подтверждения номера телефона со следующим требованием:

  • Допустимые символы: + space ( ) – 0-9

  • + или ( может быть первым символом после трима, как (+61) 312 405 678 или +61 312 405 678.

  • Тире разрешено в любом месте номера.

  • Длина min 8 max 16 - показать ошибку в случае граничных условий

Но мне нужно немного его улучшить. Я хочу подтвердить, что если + в числе, оно должно быть только в начале, но мое регулярное выражение не проверяет это. Пожалуйста помоги. Это мое регулярное выражение:

^[\\(?\\+?(\\d{2})\\)?[- ]?(\\d{0,})[- ]?(\\d{0,})[- ]?(\\d{0,})]{9,16}$

Ответы [ 2 ]

1 голос
/ 03 сентября 2011

Добавление \ + {0,1} в начало должно помочь.

Готовое регулярное выражение будет выглядеть так

^\+{0,1}[\(?\+?(\d{2})\)?[ -]?(\d{0,})[- ]?(\d{0,})[- ]?(\d{0,})]{9,16}$

0 голосов
/ 03 сентября 2011

Я бы выбрасывал все необязательные символы, а затем проверял бы, соответствует ли он \\+?\\d{8,16}.

В качестве альтернативы, допускается произвольное количество знаков препинания в любом месте;[\\s().-]*(\\+[\\s().-]*)?(\\d[\\s().-]*){8,16}.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...