方案一:比较精准的判断手机段位,但是随着手机号段的增多要不断的修改正则
1 public boolean isPhoneNumber1(String phone) { 2 String regExp = "^[1]([3][0-9]{1}|50|51|52|53|54|55|56|57|58|59|47|77|80|81|82|83|84|85|86|87|88|89)[0-9]{8}$"; 3 Pattern p = Pattern.compile(regExp); 4 Matcher m = p.matcher(phone); 5 return m.find();//boolean 6 }
方案二:相对于方法一可以算得上一劳永逸,对140,141等目前不存在的号段没办法判断
1 public boolean isPhoneNumber2(String phone) { 2 String regExp = "^1[3|4|5|7|8]\d{9}$"; 3 Pattern p = Pattern.compile(regExp); 4 Matcher m = p.matcher(phone); 5 return m.find(); 6 }