2013-10-24 3 views
-1

Я пытаюсь проверить номер телефона, который должен содержать только цифры с некоторыми специальными символами, такими как (),-. Я пробовал следующие /^[0-9,()-]+$/, но он показывает ошибку. Специальные символы являются необязательными, кроме тех специальных символов и цифр, которые запрещены.Проверка, регулярное выражение, позволяющее некоторым символам

+1

Вы должны избегать специальных символов, таких как '(' или '-', используя \. Так что если вы хотите совместить символ' ('вы должны использовать' \ ('в вашем шаблоне –

+0

, я пишу выражение следующим образом: ^ 0-9, \ (\) \ -] $ –

+0

не дает ошибки, когда я копирую прошлый эпизод в стеке над потоком, он не показывает '\()' с обратной косой чертой –

ответ

1

Я предлагаю вам взглянуть на Perl's RegEx tutorial и www.regular-expressions.info для лучшего понимания RegEx.
Образец, который вы предоставили (даже если синтаксически исправлен) не подходит для вашего случая (номера телефонов), поскольку он соответствует строкам, например 78,(-34.

Первый шаг для написания правильного RegEx - это понимание шаблона, в котором вы нуждаетесь. Для вашего случая вам нужно подумать о разных строках, которые будут соответствовать номеру телефона. Некоторые примеры:

Совпадение:

(500)-8764531 
500-8764531 
(+9821)-76787600 
76787600,01 

Нет матч

(500)-876453187645318764531 
500,8764531 
(+9821-76787600 
76787600,01) 

Следующий шаг заключается в создании RegEx, который соответствует эти модели. После этого вы должны проверить свой шаблон с различными граничными случаями и, если потребуется, выполнить предыдущие шаги еще раз.

+0

ok Я буду ссылаться на сайты –

+0

Я пишу выражение /[0-9-\(\)].$/ работает в Rubular, но не в моем коде –

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