如何使用国际格式的libphonenumber格式化电话号码。

时间:2015-07-24 13:11:36

标签: c#-4.0 libphonenumber

在Github上的libphonenumber提供的documentation中,有一个demo,它将任何提供的数字转换为国际格式,例如+4915213116250转换为+49 1521 3116250

我想在C#中使用相同的功能。

在libphone的文档中,需要解析数字并提供国家/地区。但该演示无需提供地区/国家即可。有些遗体可以让我知道它是如何完成的吗?

2 个答案:

答案 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 可能会抛出。