Как правильно реализовать регулярку для номеров
Вот есть регулярное выражение
^((8|\\+7|\\+380|\\+375|\\+373)[\\- ]?)?(\\(?\\d{3}\\)?[\\- ]?)?[\\d\\- ]{7,10}$
пробую записать его в оптимизатор регулярных выражений но мне возвращает
preg_match (): Ошибка компиляции: закрывающая скобка со смещением 36 отсутствует.
Как вообще правильно строить регулярку?
Ответы (2 шт):
Автор решения: phony51
→ Ссылка
Регулярка для номеров РФ:
((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}
Автор решения: Qwertiy
→ Ссылка
Вероятно, в оптимизатор надо совать не строку с дополнительным экранированием, а саму регулярку
^((8|\+7|\+380|\+375|\+373)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$Он всё равно не работает, потому что говорит ошибку, хотя регулярка синтаксически корректная.
А смысл её оптимизировать?
Здесь не проверяется суммарное количество цифр в номере - вероятно, это баг.
Дефис экранировать обычно не требуется.