Ответ 1
Такой API на любом языке: Number:: Phone (пример подмодуля: Количество:: Телефон:: США).
Данные: индекс ITU National Numing Plans.
Этот вопрос, требующий API формата номера телефона в Java, заставил меня задаться вопросом, почему такой API, похоже, не существует. Учитывая количество валидация классов, доступных в Apache Commons, Я бы подумал, что такой API будет включен.
Мой вопрос: кто-нибудь знает о библиотеке форматирования/проверки номера телефона, доступной в любом языке, который может быть использован в качестве модели для небольшого Java-проекта с открытым исходным кодом? Кроме того, кроме большого количества различных форматов телефонных номеров, используемых во всем мире, кто-нибудь знает о какой-либо причине, что такой проект был бы неосуществим?
Такой API на любом языке: Number:: Phone (пример подмодуля: Количество:: Телефон:: США).
Данные: индекс ITU National Numing Plans.
Недавно Google опубликовал libphonenumber для разбора, форматирования, хранения и проверки международных телефонных номеров.
В http://www.geonames.org/ у них есть база данных, которую вы можете скачать, правила theres regEx для телефонных номеров, включенных в набор данных информации о стране.
http://download.geonames.org/export/dump/
Посмотрите файл 'countryInfo.txt'.
Я предлагаю вам создать свой собственный валидатор на основе этого.
Как было сказано в ответах на другой вопрос, никто не видел ни одного для Java, и, как вы сказали, это было бы почти невозможно из-за различий в форматах телефонных номеров по всему миру.
И если вы знаете разные форматы для регионов, на которые настроен таргетинг, обычно довольно легко реализовать его в регулярных выражениях.
Здесь вы можете посмотреть Parsify Format - https://www.mashape.com/parsify/format#endpoint-Phone-Number
Он вернет ваш номер в нескольких форматах, например.
{ "e164": "+1234567890", "национальный": "234567890", "международный": "+1 234567890", "valid": false, "type": "UNKNOWN" }
Вы можете получить более обширный ответ, если это реальное число
Поле ввода телефона:
<input class="left" id="field" name="field" />
jquery Script:
jQuery.validator.addMethod( "phoneUS", function (phone_number, element) { phone_number = phone_number.replace(/\ s +/g, ""); return this.optional(element) || phone_number.length > 9 & & phone_number.match(/^ (1 -) (([2-9]\d {2}) |?? [2-9]\d {2}) - [2-9]\d {2} -?\d {4} $/); }, "Укажите действительный номер телефона" );