Java电话号码格式API
我有一个数据库,其中包含数以百万计的免费格式的电话号码。即,UI不强制执行任何约束,并且用户正在键入他们想要的任何内容。
我正在寻找的是一种Java API,可以尽力将它们转换为一致的格式。理想情况下,API将采用自由文本值和国家/地区代码,并产生有效的国际电话号码或引发异常。
例如,系统中的电话号码可能类似于以下任何一项:
(555) 478-1123555-478-1123
555.478.1123
5554781123
给定美国所在的国家/地区,API将为所有这些产生值“ +1(555)478-1123”。确切的格式无关紧要,只要它是一致的即可。
系统中也有不带区号的数字,例如“ 478-1123”。在那种情况下,我期望NoAreaCodeException或类似的东西。
也可能有诸如“ abc”之类的数据,该数据也应引发异常。
当然,我发布的示例有无数种变化,以及国际电话号码的巨大复杂性,它们具有相当复杂的验证规则。这就是为什么我不考虑自己动手做的原因。
有没有人看过这样的API?
回答:
您可以编写自己的代码(适用于美国电话#格式):
- 从字符串中去除所有非数字字符
- 检查剩余的字符串是否为十个字符长
- 在前三个字符前后加上括号,在第六和第七个字符之间加一个短划线。
- 在字符串前面加上“ +1”
更新:
谷歌最近发布了libphonenumber,用于解析,格式化,存储和验证国际电话号码。
以上是 Java电话号码格式API 的全部内容, 来源链接: utcz.com/qa/418734.html