Валидатор телефонного номера на php (регулярное выражение)

Нужно написать регулярное выражение для номера телефона в таком формате

+d(ddd)ddd-dd-dd

Пробовал так:

#^(\+\d)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$#

Не работает.


Ответы (1 шт):

Автор решения: Wiktor Stribiżew

Используйте

<?php

$re = '#^\+\d\(\d{3}\)\d{3}-\d{2}-\d{2}$#';
if (preg_match($re, "+7(101)567-34-12")) {
    echo "Valid!";
}

Подробности

  • ^ - начало строки
  • \+ - символ +
  • \d - одна цифра
  • \( - символ (
  • \d{3} - три цифры
  • \) - символ )
  • \d{3}-\d{2}-\d{2} - три цифры, -, две цифры, - и две цифры
  • $ - конец строки.

См. пример использования.

→ Ссылка