我们如何按国家/地区验证手机号码的长度?(知道国家代码可能是也可能不是号码的一部分)
长度可能因国家/地区而异,这意味着应该有一个长度范围或模式验证器。
例子:
- +1 222 2222 222(13 位数)有效✔️
- 222 2222 222 (12 位) 仅在对应区域选择时有效✔️
- +1 222 2222 2222222(17位)无效❌</li>
- +1 222 2222(8 位)无效 ❌</li>
注意:知道在哪里可以找到每个国家/地区的手机号码长度范围。
谢谢!
我们如何按国家/地区验证手机号码的长度?(知道国家代码可能是也可能不是号码的一部分)
长度可能因国家/地区而异,这意味着应该有一个长度范围或模式验证器。
例子:
注意:知道在哪里可以找到每个国家/地区的手机号码长度范围。
谢谢!
给定手机号码和国家代码,您可以使用libphonenumeer,这是一个用于验证电话号码的 Google 库;它检查数字长度并NumberParseException
在它不是正确数字时捕获异常。
这是他们如何使用它的示例
String swissNumberStr = "044 668 18 00";
PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
try {
PhoneNumber swissNumberProto = phoneUtil.parse(swissNumberStr, "CH");
} catch (NumberParseException e) {
System.err.println("NumberParseException was thrown: " + e.toString());
}
添加到@Zain 的答案。
String swissNumberStr = "044 668 18 00";
PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
try {
PhoneNumber swissNumberProto = phoneUtil.parse(swissNumberStr, "CH");
// This will check if the phone number is real and it's length is valid.
boolean isPossible = phoneUtil.isPossibleNumber(swissNumberProto);
} catch (NumberParseException e) {
System.err.println("NumberParseException was thrown: " + e.toString());
}