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?

回答:

您可以编写自己的代码(适用于美国电话#格式):

  • 从字符串中去除所有非数字字符
  • 检查剩余的字符串是否为十个字符长
  • 在前三个字符前后加上括号,在第六和第七个字符之间加一个短划线。
  • 在字符串前面加上“ +1”


更新:

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

以上是 Java电话号码格式API 的全部内容, 来源链接: utcz.com/qa/418734.html

回到顶部