java判断微信号、手机、名字的正则表达

最近做一个Android App的报名功能,需要在手机端对信息就进行有效性判断:

1.手机号的判断

目前手机前两位:13,14,15,17,18

public static boolean isMobileNO(String mobiles) {
if(TextUtils.isEmpty(mobiles)){
return false;
}

//1[3|4|5|7|8][0-9]表示以1开头,后跟3,4,5,7,8,[0-9]表示数字即可,d{8}剩余八位填充随意数字
Pattern p = Pattern.compile("^1[3|4|5|7|8][0-9]\d{8}$");
Matcher m = p.matcher(mobiles);
return m.matches();
}

 

2.QQ号或者微信号判断

如果要细分微信号还是QQ号,需要再细分,考虑的更多些,比如:微信号也涉及到手机号或QQ号即微信号的情况。项目只需要判断是有效的QQ号或者是微信号即可

public static boolean isQQOrWX(String qqorwx) {
if(TextUtils.isEmpty(qqorwx)){
return false;
}
//QQ号最短5位,微信号最短是6位最长20位
Pattern p = Pattern.compile("^[a-zA-Z0-9_-]{5,19}$");
Matcher m = p.matcher(qqorwx);
return m.matches();
}

3.姓名有效性判断

项目只需要判断是中文,还是英文,或中文+英文,过滤掉其他特殊字符或表情等等

public static boolean isName(String name){
if(TextUtils.isEmpty(name)){
return false;
}

//因项目需求,只需要限定在中文和英文上即可,长度已经在Android EditText中限制输入,此处不做长度限制
Pattern p = Pattern.compile("^[u4E00-u9FA5a-zA-Z]+");
Matcher m = p.matcher(name);
return m.matches();
}
原文地址:https://www.cnblogs.com/solossl/p/5813106.html