Как отформатировать телефонные номера с помощью 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
может кинуть.