@andi_fireman

Регулярное выражение для проверки номера телефона в международном формате?

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

Для себя вижу следующий формат:
"+" -обязательный символ
" " "(" (пробел, открывающая скобка - возможно, но не обязательно, возможно использование нескольких символов подряд, например, пробел_открывающая_скобка_пробел)
код_страны - 1-3 цифры, (обязательно)
" " ")" "." "(" "-" (пробел, закрывающая скобка, точка, открывающая скобка, тире или дефис - возможно, но не обязательно, возможно использование нескольких символов подряд)
код_города_или_оператора 1-6 цифр (обязательное)
" " ")" "." "-" (пробел, закрывающая скобка, точка, тире или дефис - возможно, но не обязательно, возможно использование нескольких символов подряд)
номер телефона (4-12 цифр, разделенных различным мусором " " "." "-" в произвольном порядке, мусор может быть скомбинирован произвольно в группу символов, например " - ")
Суммарное количество цифр в номере 9-20
  • Вопрос задан
  • 2816 просмотров
Решения вопроса 1
@andi_fireman Автор вопроса
Составил, вроде все проверяет. Кто сможет проверьте
/^\s*(?:\+?(\d{1,3}))?([-. (]*(\d{3})[-. )]*)?((\d{3})[-. ]*(\d{2,4})(?:[-.x ]*(\d+))?)\s*$/gm
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@deliro
Тут как с email-ами. Самое правильное - проверять регуляркой /@/
Тут просто валидируешь в три действия:
1) Проверяешь, чтобы первый знак был плюсом
2) Удаляешь ОДИН плюс и все пробелы и дефисы (минусы)
3) Проверяешь, получилось ли целое число
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы