【问题标题】:Javascript convert phone number from E164 to International formatJavascript将电话号码从E164转换为国际格式
【发布时间】:2013-05-25 11:00:36
【问题描述】:

您好,我的电话号码是E164 format+212640588740,我想将其转换为international format+212 640-588740。 有这个库http://code.google.com/p/libphonenumber/ 可以很好地进行这种转换,但它需要一个电话号码和一个我无法提供的国家代码,因为我正在读取电话以从 DB 转换。

基本上我想要一个将 E164 作为参数并将其转换为国际标准格式的脚本或库,如下所示:

+212640588740 => +212 640-588740
+33336578668 => +33 3 36 57 86 68
+17877491410 => +1 787-749-1410

欢迎提出任何想法,在此先感谢您。

【问题讨论】:

  • 你为什么要标记这个jquery?您在使用 jquery 并且不介意使用 jquery 的解决方案吗?
  • 如果您不知道国家代码,如何将电话号码转换为国际格式?任何不使用国家代码的解决方案都会早晚给您带来一些问题。基本上,您应该在 DB 中添加一个字段来为每个数字指定国家代码。
  • 您不能从您的电话号码中提取国家代码吗?您将需要某种包含所有国家/地区代码的数据库,然后获取与数据库中的一个代码匹配的电话号码的第一个数字。
  • 在这里你可以找到这样一个列表:gist.github.com/Goles/3196253
  • 您好,感谢您的回答,但如果不知道国家代码就不可能,那么这个链接是如何工作的? link 输入电话号码:+212610478521 就可以看到格式化生效了,怎么可能呢?

标签: javascript jquery libphonenumber


【解决方案1】:

如果您的所有输入都是 E164 格式,您可以使用 com.google.i18n.phonenumbers.PhoneNumberUtil.parse() 方法将您的字符串转换为 PhoneNumber 实例,然后您可以使用 com.google.i18n.phonenumbers.PhoneNumberUtil.format() 将其转换为格式为 INTERNATIONAL 的字符串。

你不需要事先知道国家代码(或解析它),参见parse()方法的params文档:

defaultRegion - ... 如果保证号码以“+”开头,后跟国家/地区呼叫代码,则可以提供“ZZ”或 null。

这是一个简短的例子:

PhoneNumber number = com.google.i18n.phonenumbers.PhoneNumberUtil.parse("+12781112222", null);
String result = com.google.i18n.phonenumbers.PhoneNumberUtil.format(number, com.google.i18n.phonenumbers.PhoneNumberUtil.PhoneNumberFormat.INTERNATIONAL);

有关用法,请参阅文档:

com.google.i18n.phonenumbers.PhoneNumberUtil.parse() com.google.i18n.phonenumbers.PhoneNumberUtil.format()

【讨论】:

    猜你喜欢
    • 2016-04-05
    • 1970-01-01
    • 2011-01-16
    • 1970-01-01
    • 1970-01-01
    • 2015-01-19
    • 2015-07-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多