Java 中可以使用正则表达式验证手机号
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class PhoneNumberValidator {
// 手机号码的正则表达式
private static final String PHONE_NUMBER_REGEX = "^1[34578]\\d{9}$";
public static void main(String[] args) {
// 测试手机号码
String phoneNumber = "12345678901";
// 校验手机号码是否合法
boolean isValid = validatePhoneNumber(phoneNumber);
// 打印结果
System.out.println("Is " + phoneNumber + " a valid phone number? " + isValid);
}
/**
* 校验手机号码是否合法
*
* @param phoneNumber 要校验的手机号码
* @return 如果手机号码合法则返回true,否则返回false
*/
public static boolean validatePhoneNumber(String phoneNumber) {
// 创建手机号码正则表达式的模式
Pattern pattern = Pattern.compile(PHONE_NUMBER_REGEX);
// 使用模式匹配手机号码
Matcher matcher = pattern.matcher(phoneNumber);
// 返回匹配结果
return matcher.matches();
}
}
在这个示例中,我们编写了一个静态方法 validatePhoneNumber
,用于验证手机号。该方法接受一个字符串参数 phoneNumber
,然后使用正则表达式 ^1[34578]\\d{9}$
来检查是否符合手机号的规则
该表达式的意思是
^
表示字符串的开头。1
表示手机号码开头必须是数字 1。[34578]
表示第二个数字只能是 3、4、5、7、8 中的一个。\\d{9}
表示后面需要跟着 9 个数字。$
表示字符串的结尾。
我们使用 Pattern
类的 compile
方法将正则表达式编译成一个模式。然后,我们使用 Matcher
类的 matches
方法将手机号码与该模式进行匹配。最后,我们返回 matches
方法的结果,表示手机号码是否符合正则表达式的规则