通过国家/地区代码检查手机号码是否有效

时间:2012-09-04 14:03:44

标签: android contacts

我有联系方式,如“+919672525253”。现在,我从该号码中提取国家代码,如“91”。现在如果数字是“9672525253”,如果我提取国家代码,那么它会给我“967”。因此,在提取国家/地区代码后,如何检查剩余号码是否为该国家/地区代码的有效手机号码? 的修改

如果有任何机构知道国家/地区的手机号码长度,那么我也可以解决这个问题。就像在印度10位数。

2 个答案:

答案 0 :(得分:3)

你几乎不能。例如,在美国,移动电话号码和固定电话号码无法区分,它们具有正常的区号,就像固定电话号码一样。即使有可能每个国家都采用不同的方式,并且随着数字用完而不断变化,新的前缀会被添加并且事情会发生变化,而且它们不是可以匹配的模式,也不是数据库,您可以对其进行查找。

答案 1 :(得分:1)

查看可以帮助验证电话号码的libPhoneNumber(捆绑在ICS中)(请参阅PhoneNumberUtils)。 验证后可以获得一个MobileType,但是如源和Ben所述,在某些地区,这将不起作用。


修改

一些验证码(这里我们需要检查手机是否有效,假设它是法国手机):

boolean isValid = false;
PhoneNumber number = null;
try {
    number = this.phoneUtil.parse(phone, "FR"); // phone is number in internationnal format "+xxxxxx"
    isValid = this.phoneUtil.isValidNumber(number);
} catch (final NumberParseException e) {
    // ...
}

isValid // is the phone number valid according to the library?
this.phoneUtil.getRegionCodeForNumber(number); // this gets the country code of the phone as found by the library (for example "US", "CH", "GB", ...)

这适用于我们,但您需要尝试一下,看看它是否符合您的需求。