本人使用的是jdk8
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ValidatePhoneNumber {
public static void main(String[] args) {
System.out.println("13542438118 " + validatePhoneNumber("13542438118")); // 正确的手机号码 true
System.out.println("1455553811 " + validatePhoneNumber("1455553811")); // 少一位数字 false
System.out.println("145555381169 " + validatePhoneNumber("145555381169")); // 多一位数字 false
System.out.println("14555538116a " + validatePhoneNumber("1455553811a")); // 含有字母 false
System.out.println("1455553811中 " + validatePhoneNumber("1455553811中")); // 含有汉子 false
System.out.println("1455553811% " + validatePhoneNumber("1455553811%")); // 含有特殊字符 false
}
/**
* 正则表达式校验手机号码
* @return false 则手机号码不合法,true 则手机号码校验通过
*/
public static boolean validatePhoneNumber(String phoneNumber) {
if (phoneNumber.length() != 11) {
System.out.print("手机号应为11位数 ");
return false;
}else{
String regPattern = "^((13[0-9])|(14[5,7,9])|(15([0-3]|[5-9]))|(166)|(17[0,1,3,5,6,7,8])|(18[0-9])|(19[8|9]))\\d{8}$";
Pattern pattern = Pattern.compile(regPattern);
Matcher matcher = pattern.matcher(phoneNumber);
boolean isMatch = matcher.matches();
if (!isMatch) {
System.out.print("请填入正确的手机号 ");
}
return isMatch;
}
}
}
运行结果:

在Java 8环境下,本文介绍了如何利用正则表达式进行手机号码的有效性校验,包括具体的代码实现和运行结果。
453

被折叠的 条评论
为什么被折叠?



