如何使用弹簧引导验证电话号码



如何在java中验证虚拟号码/电话号码?

虚拟号码的长度可以是12个字符,格式应该是90507167819。我想检查一下长度和字母数字字符。virtualNumber是字符串,例如:9055233458295

这个问题有点模糊,但我将介绍电话号码验证的各个方面

第一级验证是一个简单的电话号码格式验证。这可以通过正则表达式匹配来执行。

String pattern = "\d{10}|(?:\d{3}-){2}\d{4}|\(\d{3}\)\d{3}-?\d{4}";
if (inputString.matches(pattern)) {     
System.out.println("Valid"); 
} else {     
System.out.println("Invalid"); 
} 

有关正则表达式匹配的更多信息,请参阅此线程。

接下来是基于locale的验证,验证基于国家代码、起始数字和位数以及数字的各种格式样式。最好的解决方案是使用Google PhoneUtils。他们在跟上各个国家/地区不断变化的数字格式方面做得很好。将带有maven或gradle的google phone utils库导入到您的项目中。

<!-- https://mvnrepository.com/artifact/com.googlecode.libphonenumber/libphonenumber -->
<dependency>
<groupId>com.googlecode.libphonenumber</groupId>
<artifactId>libphonenumber</artifactId>
<version>8.12.45</version>
</dependency>

用途如下

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());
}

更多关于该项目的详细信息,点击这里

最后,验证电话号码的最后一种方法是实际拨打电话。这需要与Twilio等VoIP自动化提供商进行更精细的集成。Twilio提供了用于手机验证的API。您可以从java代码中调用这些API,并传递电话号码和处理各种响应代码。更多详细信息请点击此处。这是一个付费解决方案https://www.twilio.com/docs/lookup/tutorials/validation-and-formatting

您可以创建一个自定义验证器来适应您的电话号码规则,请参阅本文,了解如何创建自定义验证器https://www.baeldung.com/spring-mvc-custom-validator.

您还可以使用regex来确保输入符合您的期望。

最新更新