Java正则表达式判断是否为手机号码(支持最新166、188、199号段)

原创     发表于 2020-10-20 10:31     阅读 77  

Java判断是否为手机号码,多数都采用正则的方式,效率高!支持最新166、188、199号段的验证,同时支持165、172、174、191、195 等号段的验证。

/**
* 验证手机号码是否正确,正确返回true,否则返回false
* @param phoneNumber
* @return
*/
public static boolean isPhoneNumber(String phoneNumber) { if (isEmpty(phoneNumber)) {
return false;
}
//String regex = "^((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}$";
/**
* 2020年5月新增165、172、174、191、195 等号段的验证
*/
String regex = "^((13[0-9])|(14[5,7,9])|(15([0-3]|[5-9]))|(16[5,6])|(17[0-8])|(18[0-9])|(19[1、5、8、9]))\\d{8}$";
if (phoneNumber.length() != 11) {
return false;
} else {
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(phoneNumber);
return m.matches();
}
}