16

这个在 Java 中询问电话号码格式 API 的问题让我想知道为什么这样的 API 似乎不存在。鉴于Apache Commons下可用的验证类的数量,我原以为会包含这样的 API。

我的问题是,有没有人知道可以用作小型 Java 开源项目模型的任何语言的电话号码格式/验证库?此外,除了全世界使用大量不同的电话号码格式之外,有没有人知道这样一个项目不可行的任何原因?

4

6 回答 6

25

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

于 2011-01-05T13:57:00.670 回答
13

任何语言的此类 API:Number::Phone(示例子模块:Number::Phone::US)。

数据:国际电联的国家编号计划索引。

于 2009-02-01T19:18:50.727 回答
3

http://www.geonames.org/他们有一个可以下载的数据库,国家信息数据集中包含电话号码的 regEx 规则。

http://download.geonames.org/export/dump/

查找“countryInfo.txt”文件。

我建议您在此基础上构建自己的验证器。

于 2010-06-02T21:03:14.177 回答
0

就像在另一个问题的答案中所说的那样,没有人见过 Java,就像你说的那样,由于世界各地电话号码格式的差异,这几乎是不可能的。

如果您知道目标区域的不同格式,那么在正则表达式中实现它通常很容易。

于 2009-02-01T19:15:24.570 回答
0

您可以在此处查看 Parsify 格式 - https://www.mashape.com/parsify/format#endpoint-Phone-Number

它将以多种格式返回您的号码,例如

{“e164”:“+1234567890”,“国家”:“234567890”,“国际”:“+1 234567890”,“有效”:假,“类型”:“未知”}

如果它是一个实数,您可以获得更广泛的响应

于 2013-02-28T06:33:53.490 回答
-3

电话输入字段:

<input class="left" id="field" name="field" />

jquery脚本:

jQuery.validator.addMethod("phoneUS", function(phone_number, element) { phone_number = phone_number.replace(/\s+/g, ""); return this.optional(element) || phone_number.length > 9 && phone_number.匹配(/^(1-?)?(([2-9]\d{2})|[2-9]\d{2})-?[2-9]\d{2}-?\ d{4}$/); }, "请指定一个有效的电话号码");

于 2012-09-13T12:21:23.387 回答