正则表达式
在做项目时遇到了的正则表达式的学习,mark一下。
常用
用户名规则
//用户名正则,4到16位(字母,数字,下划线,减号)
Pattern NamePattern = Pattern.compile("^[a-zA-Z][a-zA-Z0-9_-]{4,16}");
密码规则
//密码强度正则,最少6位,包括至少1个大写字母,1个小写字母,1个数字,1个特殊字符
Pattern PasswdPattern = Pattern.compile("^.*(?=.{6,16})(?=.*\\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$");
邮箱规则
//Email正则
Pattern EmailPattern = Pattern.compile("^[a-zA-Z0-9]+@[a-zA-Z0-9]+\\.[a-zA-Z0-9]+");
手机号规则
Pattern.compile("^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(18[0,5-9]))\d{8}$");
更多参考:
https://www.cnblogs.com/raphael1982/p/8012634.html
调用
//对比类
Matcher matcher;
//定义
String username = "xxxxxx";
String passwd = "xxxxxx";
String email = "xxxxxx";
if(!NamePattern.matcher(username).matchs()){
return R.error("username is illegal"); //自定义返回类
}else if(!PasswdPattern.matcher(passwd).matchs()){
return R.error("password is illegal");
}else if(!EmailPattern.matcher(email).matchs()){
return R.error("email is illegal");
}else{
return R.ok("Register success");
}
基础知识
https://www.runoob.com/regexp/regexp-flags.html