У меня есть база данных с миллионами телефонных номеров с бесплатным форматированием. То есть пользовательский интерфейс не налагает никаких ограничений, и пользователи вводят все, что хотят.
Что мне нужно, так это Java API, который может сделать все возможное, чтобы преобразовать их в согласованный формат. В идеале API должен принимать значение свободного текста и код страны и создавать действительный международный номер телефона или выдавать исключение.
Например, номер телефона в системе может выглядеть следующим образом:
(555) 478-1123
555-478-1123
555.478.1123
5554781123
Учитывая страну США, API выдаст значение "+1 (555) 478-1123" для всех этих. Точный формат не имеет значения, если он соответствует.
В системе также есть номера без кодов городов, например "478-1123". В этом случае я бы ожидал исключение NoAreaCodeException или что-то подобное.
Также могут быть такие данные, как «abc», которые также должны выдавать исключения.
Конечно, есть бесчисленное множество вариаций приведенных мною примеров, а также огромное усложнение международных телефонных номеров, которые имеют довольно сложные правила проверки. Вот почему я бы не стал кататься самостоятельно.
Кто-нибудь видел такой API?