转:https://www.jianshu.com/p/18a245600468
/**
* 手机号最新的正则表达式验证
*
* 移动:134-139,147(上网卡),150-152,157-159,178,182-184,187,188
* 联通:130-132,155-156,176,185-186,145(上网卡)
* 小米联通:171
* 小米电信: 170
* 阿里通信旗舰店也是170
* 百度圣卡联通的都有,靓号不少,大王卡差不多
* 电信:133,149(上网卡),153,173,177,180-181,189,199
* 13[0-9] 14[5,7,9],15[0-3,5-9],17[0,1,3,6,7,8],18[0-9]
* 阿里大鱼卡:199
* 卫星通信: 1349
* 联通:166 和支付宝新合作推出的
* 更新日期2018/03/31
*
* @param phone
* @return
*/
public static boolean isPhone(String phone){
String matchMobile="((13[0-9])|(14[5,7,9])|(15[^4])|(16[6])|(18[0-9])|(17[0,1,3,5,6,7,8])|(19[9]))\\d{8}";
Pattern p = Pattern.compile(matchMobile);
Matcher m = p.matcher(phone);
return m.matches();
}