2015-05-20 2 views
1

Я просматривал веб-страницы на разных regex для проверки номера телефона. Есть, конечно, сотни различных примеров, так как есть сотни различных форматов номера телефона ...Regex для английского и ирландского телефонных номеров

Я решил написать свои собственные по двум причинам.

  1. Я хотел узнать больше о регулярных выражениях
  2. те, которые я наткнулся не устраивает мои потребности

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

Формат чисел Я ищу следующие:

  • должен начинаться либо с +353 или +44
  • следуют цифры 0 - 9
  • способность включать пробелы между число

в настоящее время у меня есть это:

([+][353]{3})[\d\s]{7,11}|([+][44]{2})[\d\s]{7,11} 

Это позволяет мне войти в номерах в таких форматах, как:

+ 353xxxxxxx или + 44xxxxxxx

Проблема у меня в том, что он рассчитывает пробелы в {7,11} и в результате Если кто-то входит:

+353 ххх ххх ххх Он не проверяет

Я пытаюсь найти способ, что я могу позволить пространства между любой из моих номеров 0 - 9, но ограничить число на 11.

Так потенциально кто-то может прийти и войти в это число:

+353 12 34 56 78

Любая помощь очень ценится.

+1

Обратите внимание, что '[353] {3}' будет соответствовать '333',' 555', '553',' 535' и т. Д. В целом, использование вами классов предполагает, что вы должны начать с чтения регулярного выражения руководство. – Biffen

+0

Привет, Биффен, я обязательно буду читать больше уроков, я в процессе этого делаю. Цените свой комментарий, полезный, чтобы увидеть недостаток в моем регулярном выражении. Спасибо. – Javacadabra

ответ

5

Формат чисел Я ищу следующие:

должны начинаться с +353 или +44 Вслед за номерами 0 - 9 способность включать пробелы между числами

Это довольно просто:

\+(353|44)(\s*\d)+ 

в утонченности, вы могли бы потребовать определенного диапазона цифр после международного префикса. Например:

^\+(353|44)(\s*\d){9,12}$ 

будет соответствовать +44 или +353 следуют между 9 и 12 цифр (с дополнительными пробелами).^ и $ соответствуют началу и концу строки, поэтому дополнительные символы в начале или конце номера приведут к сбою совпадения.

+0

Блестящий ответ, спасибо. Он отлично работал. – Javacadabra

+1

Ну, что позволит человеку вводить произвольное количество цифр – CodingIntrigue

+0

Да, но я могу ограничить это без проблем, я просто не знал, как игнорировать пробелы – Javacadabra

Смежные вопросы