0

我们如何按国家/地区验证手机号码的长度?(知道国家代码可能是也可能不是号码的一部分)

长度可能因国家/地区而异,这意味着应该有一个长度范围或模式验证器。

例子:

  • +1 222 2222 222(13 位数)有效✔️
  • 222 2222 222 (12 位) 仅在对应区域选择时有效✔️
  • +1 222 2222 2222222(17位)无效❌</li>
  • +1 222 2222(8 位)无效 ❌</li>

注意:知道在哪里可以找到每个国家/地区的手机号码长度范围。

谢谢!

4

2 回答 2

1

给定手机号码和国家代码,您可以使用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());
}
于 2020-12-18T14:07:24.587 回答
0

添加到@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());
}
于 2020-12-28T14:46:05.737 回答