最近做一个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(); }