验证用户名和密码的正则表达式

//用户名长度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()全部转为小写存储即可,验证也是一样

哪位园友有更好的办法也可以评论

posted @ 2020-03-06 17:09  卷心菜的奇妙历险  阅读(1499)  评论(0编辑  收藏  举报