检查两者具有相同格式的国家/地区的号码是移动号码还是固定电话号码

时间:2012-03-08 10:20:56

标签: javascript validation phone-number

我正在尝试使用Google的libphonenumber的javascript版本来验证手机号码。我首先检查数字是否有效,然后如果有效,我检查它的类型是否是移动的。我面临的问题是,如果检查美国手机号码,它将作为有效但不是手机号码。所以我得到的反馈是这个号码是合法的美国号码,而不是美国的手机号码。我知道他们无法区分这两者,但在这种情况下,反馈不应该是“不能说”而不是“不”。

我想把它发布为一个问题,但后来我想我应该确认我是对的,我可能会遗漏一些东西。所以有人可以确认一下,或者只是指导我,如果我做错了什么。

2 个答案:

答案 0 :(得分:1)

这是一个棘手的话题。如果您认真对待这种区别,那么您必须订阅定期更新的国际电话号码数据库,例如this one(无关联,关联或任何事情,恰好了解它们)。有了它,你就能够将一个数字( - 前缀)与一个载体联系在一起,这比你想象的更加多样,复杂和不断变化。

这就是为什么libphonenumber不能给出100%准确结果的原因。我不知道它是否能够回归"不知道"确切地说。

答案 1 :(得分:1)

我知道它已经很晚了,但如果有人后来提出这个问题,那就是我的错误。对于无法确定是固定电话号码还是手机号码的情况,他们的状态为PNT.FIXED_LINE_OR_MOBILE。