我正在尝试使用Google的libphonenumber的javascript版本来验证手机号码。我首先检查数字是否有效,然后如果有效,我检查它的类型是否是移动的。我面临的问题是,如果检查美国手机号码,它将作为有效但不是手机号码。所以我得到的反馈是这个号码是合法的美国号码,而不是美国的手机号码。我知道他们无法区分这两者,但在这种情况下,反馈不应该是“不能说”而不是“不”。
我想把它发布为一个问题,但后来我想我应该确认我是对的,我可能会遗漏一些东西。所以有人可以确认一下,或者只是指导我,如果我做错了什么。
答案 0 :(得分:1)
这是一个棘手的话题。如果您认真对待这种区别,那么您必须订阅定期更新的国际电话号码数据库,例如this one(无关联,关联或任何事情,恰好了解它们)。有了它,你就能够将一个数字( - 前缀)与一个载体联系在一起,这比你想象的更加多样,复杂和不断变化。
这就是为什么libphonenumber不能给出100%准确结果的原因。我不知道它是否能够回归"不知道"确切地说。
答案 1 :(得分:1)
我知道它已经很晚了,但如果有人后来提出这个问题,那就是我的错误。对于无法确定是固定电话号码还是手机号码的情况,他们的状态为PNT.FIXED_LINE_OR_MOBILE。