Java电话号码格式API

新手上路,请多包涵

我有一个数据库,其中包含数以百万计的电话号码,格式完全免费。即,UI 不强制执行任何约束,用户可以输入他们想要的任何内容。

我正在寻找的是一个 Java API,它可以尽最大努力将这些转换为一致的格式。理想情况下,API 将采用自由文本值和国家代码并生成有效的国际电话号码或抛出异常。

例如,系统中的电话号码可能如下所示:

 (555) 478-1123
555-478-1123
555.478.1123
5554781123

给定美国国家/地区,API 将为所有这些生成值“+1 (555) 478-1123”。确切的格式并不重要,只要它是一致的。

系统中也有没有区号的号码,如“478-1123”。在那种情况下,我会期待 NoAreaCodeException 或类似的东西。

也可能有诸如“abc”之类的数据,它们也应该抛出异常。

当然,我发布的示例有无数种变体,还有极其复杂的国际电话号码,具有相当复杂的验证规则。这就是为什么我不会考虑推出自己的。

有人见过这样的API吗?

原文由 Chase Seibert 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 531
2 个回答

你可以写你自己的(美国电话号码格式):

  • 从字符串中去除所有非数字字符
  • 检查剩余的字符串是否为十个字符长
  • 在前三个字符两边加上括号,在第六和第七个字符之间加上破折号。
  • 在字符串前添加“+1”

更新:

Google 最近发布了 libphonenumber ,用于解析、格式化、存储和验证国际电话号码。

原文由 Bill the Lizard 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题