Пользовательское выражение RegEx для проверки различных возможностей ввода телефонных номеров? - PullRequest
1 голос
/ 08 июня 2010

Я ищу пользовательское выражение RegEx (которое работает!) Для проверки общего телефонного номера с записями кода города (без кода страны), например:

111-111-1111

(111) 111-1111

(111) 111-1111

111 111 1111

111.111.1111

1111111111

И комбинации этих / чего-либо еще, что я мог забыть.

Кроме того, возможно ли само выражение RegEx переформатировать запись?Поэтому возьмите 1111111111 и поместите его в формат 111-111-1111.Регулярное выражение, скорее всего, будет введено в модуль CMS Joomla / некоторого типа, поэтому я не могу добавить к нему код, кроме самого выражения.

Ответы [ 3 ]

1 голос
/ 08 июня 2010
\(?(\d{3})\)?[ .-]?(\d{3})[ .-]?(\d{4})

будет соответствовать всем вашим примерам; после матча обратная ссылка 1 будет содержать код города, обратная ссылка 2 и 3 будет содержать номер телефона.

Надеюсь, вам не нужно обрабатывать и международные телефонные номера.

Если номер телефона указан в строке, вы также можете использовать

^\s*\(?(\d{3})\)?[ .-]?(\d{3})[ .-]?(\d{4})\s*$

допускает пробелы в начале / конце и ничего больше.

0 голосов
/ 08 июня 2010

В зависимости от рассматриваемого языка, вам может быть лучше использовать заменяющий оператор для замены нецифровых символов: ()-/. ничем, а затем просто проверьте, что осталось 10-значный номер.1002 *

0 голосов
/ 08 июня 2010

Почему бы просто не удалить пробелы, скобки, тире и точки, а затем проверить, что это число из 10 цифр?

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