电话号码格式和验证库

时间:2009-02-01 18:59:46

标签: phone-number

This question在Java中要求使用电话号码格式API让我想知道为什么这样的API似乎不存在。考虑到validation下可用的Apache Commons类的数量,我认为会包含这样的API。

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

6 个答案:

答案 0 :(得分:25)

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

答案 1 :(得分:13)

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

数据:国际电联的National Numbering Plans索引。

答案 2 :(得分:3)

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

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

查找'countryInfo.txt'文件。

我建议你根据它建立自己的验证器。

答案 3 :(得分:0)

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

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

答案 4 :(得分:0)

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

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

{   “e164”:“+ 1234567890”,   “国民”:“234567890”,   “国际”:“+1 234567890”,   “有效”:错误,   “type”:“UNKNOWN” }

如果是实数,您可以得到更广泛的回复

答案 5 :(得分:-2)

电话输入字段:

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

jquery脚本:

jQuery.validator.addMethod(“phoneUS”,function(phone_number,element){    phone_number = phone_number.replace(/ \ s + / g,“”);    返回this.optional(元素)|| phone_number.length&gt; 9&amp;&amp;    phone_number.match(/ ^(1 - )(([2-9] \ d {2})|???[2-9] \ d {2}) - [2-9] \ d {2} - ?\ d {4} $ /); },“请指定有效的电话号码”);