网上流传着一份以讹传讹的版本,即如下代码
public static boolean isMobileNO(String mobiles) {
String str = "^((13[0-9])|(15[^4,//D])|(18[0,5-9]))//d{8}$";
Pattern p = http://www.doczj.com/doc/fdfb38f9c5da50e2534d7f91.htmlpile(str);
Matcher m = p.matcher(mobiles);
return m.matches();
}
这个函数并不能验证出来手机号码了,问题在于下面这段正则式中以红色标注出的‘//’该应改为'\\'
"^((13[0-9])|(15[^4,//D])|(18[0,5-9]))//d{8}$"
正确可用的完整代码为:
public static boolean isMobile(String mobiles){
String str="^((13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$";
Pattern p = http://www.doczj.com/doc/fdfb38f9c5da50e2534d7f91.htmlpile(str);
Matcher m = p.matcher(mobiles);
return m.matches();
}