This question在Java中要求使用电话号码格式API让我想知道为什么这样的API似乎不存在。考虑到validation下可用的Apache Commons类的数量,我认为会包含这样的API。
我的问题是,是否有人知道任何语言中提供的电话号码格式/验证库可用作小型Java开源项目的模型?此外,除了世界各地使用的大量不同电话号码格式外,是否有人知道这样的项目不可行的任何原因?
答案 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} $ /); },“请指定有效的电话号码”);