驗證用戶名和密碼的正則表達式


//用戶名長度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()全部轉為小寫存儲即可,驗證也是一樣

哪位園友有更好的辦法也可以評論


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM