这个在 Java 中询问电话号码格式 API 的问题让我想知道为什么这样的 API 似乎不存在。鉴于Apache Commons下可用的验证类的数量,我原以为会包含这样的 API。
我的问题是,有没有人知道可以用作小型 Java 开源项目模型的任何语言的电话号码格式/验证库?此外,除了全世界使用大量不同的电话号码格式之外,有没有人知道这样一个项目不可行的任何原因?
这个在 Java 中询问电话号码格式 API 的问题让我想知道为什么这样的 API 似乎不存在。鉴于Apache Commons下可用的验证类的数量,我原以为会包含这样的 API。
我的问题是,有没有人知道可以用作小型 Java 开源项目模型的任何语言的电话号码格式/验证库?此外,除了全世界使用大量不同的电话号码格式之外,有没有人知道这样一个项目不可行的任何原因?
Google 最近发布了用于解析、格式化、存储和验证国际电话号码的libphonenumber 。
任何语言的此类 API:Number::Phone(示例子模块:Number::Phone::US)。
数据:国际电联的国家编号计划索引。
在http://www.geonames.org/他们有一个可以下载的数据库,国家信息数据集中包含电话号码的 regEx 规则。
http://download.geonames.org/export/dump/
查找“countryInfo.txt”文件。
我建议您在此基础上构建自己的验证器。
就像在另一个问题的答案中所说的那样,没有人见过 Java,就像你说的那样,由于世界各地电话号码格式的差异,这几乎是不可能的。
如果您知道目标区域的不同格式,那么在正则表达式中实现它通常很容易。
您可以在此处查看 Parsify 格式 - https://www.mashape.com/parsify/format#endpoint-Phone-Number
它将以多种格式返回您的号码,例如
{“e164”:“+1234567890”,“国家”:“234567890”,“国际”:“+1 234567890”,“有效”:假,“类型”:“未知”}
如果它是一个实数,您可以获得更广泛的响应
电话输入字段:
<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}$/); }, "请指定一个有效的电话号码");