直接上代码:
/**
* 验证手机号码是否合法
* 176, 177, 178;
* 180, 181, 182, 183, 184, 185, 186, 187, 188, 189;
* 145, 147;
* 130, 131, 132, 133, 134, 135, 136, 137, 138, 139;
* 150, 151, 152, 153, 155, 156, 157, 158, 159;
*
* "13"代表前两位为数字13,
* "[0-9]"代表第二位可以为0-9中的一个,
* "[^4]" 代表除了4
* "\\d{8}"代表后面是可以是0~9的数字, 有8位。
*/
public static boolean isMobileNumber(String mobiles) {
String telRegex = "^((13[0-9])|(15[^4])|(18[0-9])|(17[0-8])|(147,145))\\d{8}$";
return !TextUtils.isEmpty(mobiles) && mobiles.matches(telRegex);
}
当然如果考虑到号段是在变化的,需要后台配置,前台只做个11位的判断,也可以,可以直接修改下规则:
//只做11位判断,号段交给后台去判断
String telRegex2 = "^\\d{11}$";
/**
* 判断是否是11位手机号
*/
fun String.isMobile(): Boolean {
//第一位1开头,后边10位是数字
val pattern = Pattern.compile("1\\d{10}")
val matcher = pattern.matcher(this)
return !TextUtils.isEmpty(this) && matcher.matches()
}