Есть такой плагин:
https://github.com/jackocnr/intl-tel-input
И он вроде бы устраивал сначала, но потребовалось чтобы:
1) При вводе номера нельзя было ввести символы отличные от минуса, плюса, скобок, пробела и цифр. Оказалось что нет в новой версии ограничений на ввод символов (
2) Необходимо чтобы номер разбивался автоматически пробелами и минусами при вводе так: +7 918 506-62-67
Тоже не может - автор выпилил автоформат в текущей версии.
Пока повесил на keyup такой вот код:
var number = $o.intlTelInput('getNumber',0);
$o.intlTelInput('setNumber',number.replace(/[^- +0-9]/gim,''));
$o - это jquery объект с которым работаем.
НО:
Это не решает проблему форматирования при вводе.
Методы ведут себя странно - getNumber например возвращает в разных случаях или введенные польователям символы или номер очищенный от всего кроме цифр.
isValidNumber - всегда возвращает false, даже если номер валиден, только код ошибки становится при этом 0.
Но код ошибки всегда 0 когда каким-нибудь способом удалось преобразовать введенное пользователем в номер (((