我有像“+919672525253”这样的联系人。现在我从那个号码中提取像“91”这样的国家代码。现在如果号码像“9672525253”并且如果我提取国家代码那么它会给我“967”。所以在提取后国家代码我如何检查剩余号码是否是该国家代码的有效手机号码? 编辑
如果有人知道国家/地区的手机号码长度,那么我也可以解决这个问题。就像印度的 10 位数字一样。
你几乎不能。例如,在美国,手机号码和固定电话号码是无法区分的,它们有正常的区号,就像固定电话号码一样。即使每个国家/地区的做法都可能不同,并且随着数字用完而不断变化,新前缀被添加并且事情发生变化,并且它们不是您可以匹配的模式或您可以查找的数据库。
看看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", ...)
这对我们有用,但您需要尝试一下,看看它是否适合您的需要。