在Github上的libphonenumber提供的documentation中,有一个demo,它将任何提供的数字转换为国际格式,例如+4915213116250
转换为+49 1521 3116250
我想在C#中使用相同的功能。
在libphone的文档中,需要解析数字并提供国家/地区。但该演示无需提供地区/国家即可。有些遗体可以让我知道它是如何完成的吗?
答案 0 :(得分:13)
你试过这个吗?
var phoneUtil = PhoneNumberUtil.GetInstance();
var numberProto = phoneUtil.Parse("1234567890", "IT");
var formattedPhone = phoneUtil.Format(numberProto, PhoneNumberFormat.INTERNATIONAL);
这将为您提供"+39 123 456 7890"
答案 1 :(得分:1)
@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
可能会抛出。