直接上代碼:
/**
* 驗證手機號碼是否合法
* 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"代表前兩位為數(shù)字13,
* "[0-9]"代表第二位可以為0-9中的一個,
* "[^4]" 代表除了4
* "\\d{8}"代表后面是可以是0~9的數(shù)字, 有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位的判斷撵儿,也可以渤闷,可以直接修改下規(guī)則:
//只做11位判斷,號段交給后臺去判斷
String telRegex2 = "^\\d{11}$";
/**
* 判斷是否是11位手機號
*/
fun String.isMobile(): Boolean {
//第一位1開頭含潘,后邊10位是數(shù)字
val pattern = Pattern.compile("1\\d{10}")
val matcher = pattern.matcher(this)
return !TextUtils.isEmpty(this) && matcher.matches()
}