Форматирование номера телефона с использованием libphonenumber (от Google) PhoneNumberUtil: formatByPattern возвращается без 0 - PullRequest
0 голосов
/ 05 сентября 2018

Я использую предопределенные форматы телефонов для форматирования национального телефонного номера, но вернул национальный значащий номер. без префикса 0. например:

US Phone #

PhoneNumber = +16175551212   (national number is 6175551212)
pf = new PhoneFormat("(XXX) XX XXXXX", dialingCodeUS);
PhoneNumberUtil.formatByPattern(PhoneNumber, PhoneNumberFormat.NATIONAL, pf)
result: (617) 55 51212      GOOD!

IL (Израиль) Телефон #

PhoneNumber = +972545551212   (national number is 0545551212)
pf = new PhoneFormat("XXX-XXX XXXX", dialingCodeUS);
PhoneNumberUtil.formatByPattern(PhoneNumber, PhoneNumberFormat.NATIONAL, pf)

result: 545551212        BAD!

Expected it to be: 054-555 1212

Я не могу сделать это, используя другой метод только потому, что этот метод (formatByPattern) принимает предопределенные PhoneFormats

Есть ли способ отформатировать номер с использованием предопределенных форматов телефона и, тем не менее, иметь ожидаемый лидирующий ноль?

из javadoc: PhoneNumberUtil.formatByPattern

public String formatByPattern(Phonenumber.PhoneNumber number,
                     PhoneNumberUtil.PhoneNumberFormat numberFormat,
                     List<Phonemetadata.NumberFormat> userDefinedFormats)

Форматирует телефонный номер в указанном формате, используя правила форматирования, определенные клиентом. Обратите внимание, что если номер телефона имеет страну звонка нулевой код или неправильный код вызова страны, мы не можем отрабатывать такие вещи, как, должен ли быть национальный префикс применяется, или как форматировать расширения, поэтому мы возвращаем национальный значительное число без форматирования. Параметры: число - номер телефона для форматирования номера формата - формат телефона число должно быть отформатировано в userDefinedFormats - правила форматирования указанные клиентами Возвраты: отформатированный номер телефона

Демо: https://libphonenumber.appspot.com/

...