Типичное регулярное выражение для проверки номера телефона в Java - PullRequest
1 голос
/ 21 октября 2011

Я пытаюсь найти правильное регулярное выражение для проверки номера телефона в моем приложении.У меня есть регулярное выражение, которое будет принимать только цифры и некоторые специальные символы, такие как ()- и т. Д., Но проблема в том, что он принимает только символы.Так, например, он принял бы что-то вроде ()()()().Я хочу изменить регулярное выражение или получить новое регулярное выражение, которое принимает эти символы, но оно должно иметь как минимум одно число до и после каждого символа.

Мои требования:

  1. Только цифры
  2. Число с комбинацией специальных символов
  3. После каждого символа должен следовать номер (до ипосле) но пробелы в порядке
  4. Максимальная длина должна быть 15

1 Ответ

1 голос
/ 21 октября 2011

По моему опыту, скобки появляются только вокруг первой группы цифр, и в группе никогда не бывает меньше 3 цифр. Это регулярное выражение делает это, и предотвращает множественные последовательные разделители, за исключением пробела после скобки "(123) 456-7890". Я также добавил поддержку периодов в качестве разделителей. Он допускает 1, 2 или 3 группы номеров и пытается ввести общий диапазон из 7-15 цифр, но допускает ошибки на разрешающей стороне.

^\\s*(\\d{7,15})||(\\d{3,12}[\\-.]?\\s?\\d{3,12}[\\-.\\s]?)||([(]?\\d{3,9}[)\\-.]?\\s?\\d{3,9}[\\-.\\s]?\\d{3,9})\\s*

В моем окружении я должен избежать обратной косой черты - вам может не понадобиться, поэтому вам, возможно, придется заменить \ на. Дефис должен быть экранирован, потому что в этом контексте он представляет диапазон.

...