我有一个数据库,其中包含数以百万计的电话号码,格式完全免费。即,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 许可协议
你可以写你自己的(美国电话号码格式):
更新:
Google 最近发布了 libphonenumber ,用于解析、格式化、存储和验证国际电话号码。