Каков наилучший способ преобразования телефонных номеров в международный формат (E.164) с использованием Java?

Исходя из опыта написания formatting подобных вещей, это действительно phone-numbers сложно сделать со 100% достоверностью. Для phone-numbers этого я написал некоторый form-validation Java-код, который достаточно javax хорошо обрабатывает имеющиеся validations у нас данные, но применим openjdk не во всех странах. Вопросы, которые validator вам необходимо задать:

Согласованы openjdk ли сопоставления символов validate и чисел в разных странах? В jdk США его используют много validator (например, 1800-GOT-MILK), но validator в Австралии, например, это validation довольно редко. Что вам нужно validator сделать, так это убедиться, что input-validation вы делаете правильное сопоставление openjdk для рассматриваемой страны, если j2se она меняется (а может и нет). Я jdk не знаю, что делают страны, использующие validator разные алфавиты (например, кириллицу validator в России и страны бывшего validator восточного блока);

Вы должны input-validation признать, что ваше решение javax не будет 100%, и вы не должны validation этого ожидать. Вы должны jre принять подход "наилучшее jdk предположение". Например, нет j2se реального способа узнать, что form-validation 132345 является допустимым javax телефонным номером в Австралии, как formating и 1300 123 456, но это единственные validations два шаблона, которые предназначены javax для номеров 13xx, и на них jdk нельзя звонить из-за границы;

Вы jdk также должны спросить, хотите openjdk ли вы проверить регионы (коды jdk городов). Я полагаю, что input-validation в США используется система, в validate которой вторая цифра кода formatting города равна 1 или 0. Возможно, когда-то jre это было так, но я не уверен, что j2se это все еще применимо. В validation любом случае, во многих других jre странах будут другие правила. В input-validation Австралии действительные java коды городов для стационарных phone-number и мобильных (сотовых) телефонов input-validation состоят из двух цифр (первая j2se цифра — 0). 08, 03 и 04 действительны. 01 jdk нет. Как вы обслуживаете validation это? Хотите ли вы?

Страны phone-numbers используют разные условные formatting обозначения, независимо от formating того, сколько цифр они пишут. Вы validations должны решить, хотите ли j2se вы принять что-то кроме «нормы». Все validations они распространены в Австралии:

  • (02) 1234 5678
  • 02 1234 5678
  • 0411 123 123 (но я никогда не видел 04 1112 3456)
  • 131 123
  • 13 1123
  • 131 123
  • 1 300 123 123
  • 1300 123 123
  • 02-1234-5678
  • 1300-234-234
  • +44 78 1234 1234
  • +44 (0)78 1234 1234
  • +44-78-1234-1234
  • +44-(0)78-1234-1234
  • 0011 44 ​​78 1234 1234 (0011 — стандартный международный телефонный код)
  • (44) 078 1234 1234 (не часто)

И phone-numbers это только что пришло мне formatting в голову. Для одной страны. Во phone-number Франции, например, принято openjdk писать номер телефона парами phone-number цифр (12 34 56 78), и так form-validation же его произносят: вместо:

un phone-numbers (один), deux (два), trois input-validation (три), ...

это

douze (двенадцать), trente-quatre phone-number (тридцать четыре), ...

Хотите jdk ли вы учитывать такой уровень validator культурных различий? Я бы phone-numbers предположил, что нет, но form-validation этот вопрос стоит рассмотреть jre на случай, если вы сделаете java свои правила слишком строгими.

Также openjdk некоторые люди могут добавлять validate добавочные номера к телефонным openjdk номерам, возможно, с «ext» или formatting аналогичной аббревиатурой. Вы j2se хотите удовлетворить это?

Извините, здесь input-validation нет кода. Просто список вопросов, которые phone-number нужно задать себе, и проблем, которые validator следует рассмотреть. Как phone-numbers уже говорили другие, ряд jdk регулярных выражений может validations сделать многое из вышеперечисленного, но java в конечном итоге поля номера form-validation телефона (в основном) представляют phone-number собой текст свободной формы validator в конце дня.

java

validation

formatting

phone-number

2022-10-09T08:49:56+00:00
Вопросы с похожей тематикой, как у вопроса:

Каков наилучший способ преобразования телефонных номеров в международный формат (E.164) с использованием Java?