验证手机号主要求是我们要知道有那些号码段了,下面我们来看看几条Java正则表达式判断手机号的例子,希望文章能够帮助到各位朋友。 故先要整清楚现在已经开放了多少个号码段,国家号码段分配如下: 移动:134、135、136、137、138、139、150、151、157(TD)、158、159、187、188 联通:130、131、132、152、155、156、185、186 电信:133、153、180、189、(1349卫通) 那么现在就可以正则匹配测试了, 方法一:
import java.io.IOException; import java.util.regex.Matcher; import java.util.regex.Pattern; public class ClassPathResource { public static boolean isMobileNO(String mobiles){ Pattern p = Pattern.compile("^((13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$"); Matcher m = p.matcher(mobiles); System.out.println(m.matches()+"---"); return m.matches(); } public static void main(String[] args) throws IOException { System.out.println(ClassPathResource.isMobileNO("12016155153")); } }方法二:
import java.util.regex.Matcher; import java.util.regex.Pattern; String value="手机号"; String regExp = "^[1]([3][0-9]{1}|59|58|88|89)[0-9]{8}$"; Pattern p = Pattern.compile(regExp); Matcher m = p.matcher(value); return m.find();//boolean方法三:
String check = "^([a-z0-9A-Z]+[-|.]?)+[a-z0-9A-Z]@ ([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?.)+[a-zA-Z]{2,}$"; Pattern regex = Pattern.compile(check); Matcher matcher = regex.matcher(email); flag = matcher.matches(); }catch(Exception e){ flag = false; } return flag; } /** * 验证手机号码 * @param mobiles * @return [0-9]{5,9} */ public static boolean isMobileNO(String mobiles){ boolean flag = false; try{ Pattern p = Pattern.compile("^((13[0-9])|(15[^4,D])|(18[0,5-9]))d{8}$"); Matcher m = p.matcher(mobiles); flag = m.matches(); }catch(Exception e){ flag = false; } return flag; } public static boolean isNum(String number){ boolean flag = false; try{ Pattern p = Pattern.compile("^[0-9]{5}$"); Matcher m = p.matcher(number); flag = m.matches(); }catch(Exception e){ flag = false; } return flag; } }