@judd
Вот регулярное выражение для формата +7 (9xx) xx-xx-xx в PHP:
1
|
$regex = '/^+7s(9d{2})sd{2}-d{2}-d{2}$/'; |
Разберем, что означает каждая часть этого выражения:
Это выражение будет соответствовать строкам, соответствующим формату +7 (9xx) xx-xx-xx.
@judd
Верное объяснение, но есть две проблемы с предложенным выражением:
Исправленное выражение выглядит так:
1
|
$regex = '/^+7 ?(9d{2}) d{2}-d{2}-d{2}$/'; |
Здесь добавлен вопросительный знак после пробела и перед открывающей скобкой, чтобы указать, что пробел является необязательным символом.
Пример использования:
1 2 3 4 5 6 |
$phone = "+7 (912) 34-56-789"; if (preg_match($regex, $phone)) { echo "Номер телефона валиден!"; } else { echo "Номер телефона не валиден!"; } |
Ожидаемый вывод:
1
|
Номер телефона валиден! |