Как отформатировать телефонные номера с помощью libphonenumber в международном формате.

В документации, предоставленной libphonenumber на Github, есть демонстрационная версия, которая преобразует любое предоставленное число в международный формат, например +4915213116250 превращается в +49 1521 3116250

Я хочу использовать ту же функциональность в C#.

В документации libphone необходимо разобрать номер и указать страны / регионы. Но демоверсия работает без указания региона / страны. Может ли какое-нибудь тело дать мне знать, как это делается?

2 ответа

Вы пробовали это?

var phoneUtil = PhoneNumberUtil.GetInstance();
var numberProto = phoneUtil.Parse("1234567890", "IT");
var formattedPhone = phoneUtil.Format(numberProto, PhoneNumberFormat.INTERNATIONAL);

Это даст вам "+39 123 456 7890"

У @danyolgiax почти получилось. Вот что вы делаете:

      var phoneUtil = PhoneNumberUtil.GetInstance();
var numberProto = phoneUtil.Parse("+4915213116250", "ZZ"); //why ZZ means international i don't know
var formattedPhone = phoneUtil.Format(numberProto, PhoneNumberFormat.INTERNATIONAL);

Не забудьте использовать phoneUtil.IsValidNumberесли вы не уверены, что номер телефона действителен. Также имейте в виду, что phoneUtil.Parseможет кинуть.

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