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

18
在libphonenumber在Github上提供的文档中,有一个演示,可以将提供的任何号码转换为国际格式,例如+4915213116250被转换为+49 1521 3116250
我想在C#中使用相同的功能。
在libphone的文档中,需要解析号码并提供国家/地区。但是演示可以不提供国家/地区即可工作。可以有人让我知道它是如何实现的吗?
2个回答

27

你试过这个吗?

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

这将为您提供"+39 123 456 7890"


如何验证电话号码?我不知道如何设置PhoneNumber - 它有很多参数,但大多数都是只读的。 - FrenkyB
请使用phoneUtil.Parse,然后使用phoneUtil.IsValidNumber。 - Chris Jensen

3

@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可能会抛出异常。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接