2013-09-19 3 views
1

У меня есть строка ввода («Мой номер телефона - 860-678 - 2345»). Из строки ввода мне нужно подтвердить номер телефона с помощью Regex.Шаблон регулярного выражения для подтверждения номера телефона

Я использую рисунок ниже, но он не работает, если номер телефона содержит пробел в нем.

[(]?[2-9]{1}[0-9]{2}[)-. ,]?[2-9]{1}[0-9]{2}[-. ,]?[0-9]{4} 

Спасибо.

+1

ли 'regexkitlite' тег релевантным (как вы используете C#)? –

ответ

1

Следующее регулярное выражение:

(\([2-9]\d\d\)|[2-9]\d\d) ?[-.,]? ?[2-9]\d\d ?[-.,]? ?\d{4} 

матчи все из следующих:

860-678-2345 
(860) 678-2345 
(860) 678 - 2345 

и, вероятно, изрядная еще слишком. Сломался:

  • (\([2-9]\d\d\)|[2-9]\d\d) - сопоставляет первую часть числа с или без скобок
  •  ?[-.,]? ? - дефис, период (или полной остановки к нам Британцы) или запятой, с или без окружающих пространств.
  • [2-9]\d\d - Соответствует второй части номера.
  • \d{4} - Соответствует заключительной части номера.

\d\d и [0-9]{2} эквивалентны; первый немного короче, поэтому улучшается читаемость. Аналогично, [2-9] и [2-9]{1} эквивалентны; {1} просто означает «один экземпляр предшествующего шаблона», который все равно дан.

+0

... Thank you.it работает для меня. но у меня есть вопрос - –

+0

У меня есть 2 шаблона регулярных выражений, как указано ниже. Первый работает, а второй выдает ошибку - я хочу понять, в чем разница. –

+0

(\ (\ d \ d \ d \) \ d \ d \ d)? [-.,]? ? \ d \ d \ d? [-.,]? ? \ d {4} –

0

Вы можете проверить места отдельно перед и после разделительных характеристик.

[(]?[2-9]{1}[0-9]{2}[ ]?[)-.,]?[ ]?[2-9]{1}[0-9]{2}[ ]?[-.,]?[ ]?[0-9]{4} 

Имейте в виду, это привычка на самом деле соответствуют так что-то скобки, как (234-567, 1234 будет соответствовать. Поэтому, если вы хотите более строгого соответствия, вам понадобится гораздо более сложное регулярное выражение или код для проверки, используя что-то еще.

0

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

+0

Вариант использования здесь включает поиск номера телефона внутри строки и замену его фиктивным текстом. –

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