【发布时间】:2017-06-16 22:12:08
【问题描述】:
以 8209****** 开头的数字显示给定区域“IN”的无效数字。这是相同的 npm runkit 演示。
https://runkit.com/592d3e4bb70f37001158b54d/592d3e4bb70f37001158b54e
但是,使用最新版本的 google-libphonenumber 的 API 调用显示了准确的结果。
http://libphonenumber.appspot.com/phonenumberparser?number=%2B91+8209895324
我的假设是实现有问题。
这里是完整的实现,它来自 google-libphonenumber 的 npm runkit。
var phoneUtil = require("google-libphonenumber").PhoneNumberUtil.getInstance();
var phoneNumber0 = "+918209000000";
var phoneNumber1 = "+918197800510";
var phoneNumber2 = "+918209890000";
var phone0 = phoneUtil.parse(phoneNumber0);
var phone1 = phoneUtil.parse(phoneNumber1);
var phone2 = phoneUtil.parse(phoneNumber2);
console.log(phoneUtil.isValidNumber(phone0)); // failed
console.log(phoneUtil.isValidNumber(phone1)); // success
console.log(phoneUtil.isValidNumber(phone2)); // failed
【问题讨论】:
-
你能改用正则表达式吗??
-
@ΦXocę웃Пepeúpaツ 不幸的是,没有。我之前曾将此作为错误提交,他们提到它不是。只是想知道该实现到底出了什么问题,因为它适用于除本系列之外的所有其他数字。
-
@SushimMukulDutta 你确定它们是有效的电话号码吗?
-
@talentedandrew 是的,请检查对库的 API 调用。 libphonenumber.appspot.com/…。这里使用的数字也是代码中的第三种情况,失败了。
标签: javascript node.js libphonenumber