Задать вопрос
@kur4chyt
Качественный говнокод от производителя

Как проверить международный номер телефона на валидность?

В интернете нашел только примеры реализации такой валидации для определенных стран. Мне же требуется проверять на валидность номер любой страны. Возможно ли такое реализовать одним регулярным выражением? Если да, то как?
  • Вопрос задан
  • 4016 просмотров
Подписаться 2 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 4
trapwalker
@trapwalker
Программист, энтузиаст
По идее стандарт номера телефона, по которому отовсюду можно позвонить такой: "\+\d{11}".
Проблемы могут возникнуть с местными городскими соращенными номерами, там может быть и 5 цифр и 6 и 7 без кода города. Но если вы собираете номера телефонов по всему миру. то код города и страны вам все равно нужен,а значит 11-значный номер в любом случае будет правильным.
В разных местах по-разному ринято группировать цифры скобочками и дефисами. Но это к формату самого номера не относится, номер начинается с плюса и имеет 11 цифр. всё.
Из него взяв первую одну или больше цифр можно получить код страны, потом. для местных номеров, код региона, потом местный номер, но это лишнее, мне кажется. Берите одиннадцать цифр и всё.
Для разных стран можно предлагать пользователю разные форматы отображения и группировки цифр номера, но это уже прям можно сказать лишнее. Просто при вводе гнорируйте все кроме цифр, а плюс оставьте зафиксированным, чтобы люди догадались, что номер нужен в полном международном одиннадцатизначном формате.
Ответ написан
delphinpro
@delphinpro Куратор тега JavaScript
frontend developer
Вот крутая библиотечка https://github.com/jackocnr/intl-tel-input
Валидирует номера телефонов всех стран.
Ответ написан
dollar
@dollar
Делай добро и бросай его в воду.
Конечно, такое возможно реализовать.
Но алгоритмом, а не рег. выражением.

Так как вам нужна проверка для любой страны, то понадобится изучить правила составления номера для каждой страны, и затем объединить их в единый алгоритм. Вроде бы не сложно, но долго (это ответ на вопрос "как?").
Ответ написан
Комментировать
@Gl1tch
Вот ещё одна библиотека от Гугла. Есть порты на разные языки.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы