大家好,又见面了,我是你们的朋友全栈君。
2019最新的手机号码正则表达式
看着我的手机号码验证又被测试给踢了回来,没办法自己只能写一个备用了。
参考博客:
https://blog.csdn.net/u010085362/article/details/80347225
直接贴出我的正则:
代码语言:javascript复制^((\ ?86)|(\(\ 86\)))?((((13[^4]{1})|(14[5-9]{1})|147|(15[^4]{1})|166|(17\d{1})|(18\d{1})|(19[89]{1}))\d{8})|((134[^9]{1}|1410|1440)\d{7}))$
有问题请告知,自己简单的测试了下,应该没问题
基于有些小伙伴测试有问题,特附上代码测试(2021.2.5更新)
代码语言:javascript复制public static void main(String[] args) {
List<String> mobiles = new ArrayList<>();
mobiles.add(" 8613497058184");
mobiles.add("8613497058184");
mobiles.add("13487058184");
mobiles.add("14107058184");
mobiles.add("13457019273");
mobiles.add("13497019273");
String regex = "^((\ ?86)|(\(\ 86\)))?((((13[^4])|(14[5-9])|147|(15[^4])|166|(17\d)|(18\d)|(19[89]))\d{8})|((134[^9]|1410|1440)\d{7}))$";
regex = "^((((13[^4])|(14[5-9])|147|(15[^4])|166|(17\d)|(18\d)|(19[89]))\d{8})|((134[^9]|1410|1440)\d{7}))$";
Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
for(String mobile:mobiles){
Matcher matcher = pattern.matcher(mobile);
System.out.print("[" mobile "] ");
System.out.println(matcher.matches()?" match!":" not match!");
}
}
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/134611.html原文链接:https://javaforall.cn