Как отформатировать номер телефона в национальный формат без национального префикса с помощью библиотеки PhoneNumberUtils?

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

public static String getNationalPhone(String phoneE164Formatted) {
    PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
    String phoneNumber = phoneE164Formatted;
    try {
        Phonenumber.PhoneNumber numberProto = phoneUtil.parseAndKeepRawInput(phoneE164Formatted, "");
        phoneNumber = phoneUtil.format(numberProto, PhoneNumberUtil.PhoneNumberFormat.NATIONAL);
    } catch (NumberParseException e) {
        e.printStackTrace();
    }

    return phoneNumber;
}

С этим кодом я получаю национальный префикс, который мне не нужен. Например, форматирование этого числа "+526143342293" в национальный формат дало мне такой результат: "01 614 334 22 93", где "01" - это то, что я хочу подавить.

1 ответ

https://github.com/brick/phonenumber/blob/master/src/PhoneNumber.php

Эти ответы в php, вы можете конвертировать в свои.

public function getCountryCode()
{
    return (string) $this->phoneNumber->getCountryCode();
}

Преобразовать вышеуказанный код получит национальный номер в нужном формате.

Другие вопросы по тегам