//用户名长度6-20位,由数字,字母,下划线组成,且不能以数字开头,字母不区分大小写。 @Test public void main (){ String loginName = "1_admin"; System.out.println(checkLoginName(loginName)); if(!checkLoginName(loginName)){ System.out.println("用户名不合法,长度6-20位,由数字,字母,下划线组成,不能以数字开头"); } } public static boolean checkLoginName(String loginName) { String regExp = "^[A-Za-z_]{1}[A-Za-z\\d_]{5,19}$"; if(loginName.matches(regExp)) { return true; }else { return false; } }
//密码长度为8-20位,由数字,字母,下划线组成,且至少包含两种及以上字符,字母区分大小写。 @Test public void main1 (){ String passWord = "sadwadasdA1_"; System.out.println(checkPassword(passWord)); if(!checkPassword(passWord)){ System.out.println("密码不合法!长度为8-20位,由数字,大小写字母,下划线组成,且至少包含两种及以上字符"); } } public static boolean checkPassword(String passWord) { String regExp = "^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?![_]+$)[0-9_A-Za-z]{7,19}$"; if(passWord.matches(regExp)) { return true; }else { return false; } }
还是有缺陷的,不过暂时够用了,先用着,
账号不区分大小写就不写了,用String的toLowerCase()全部转为小写存储即可,验证也是一样
哪位友有更好的办法也可以评论