JavaScript趣題:密碼驗證

你得驗證一段密碼確認它符合以下的條件:

1.至少6個字符長度

2.至少一個大寫字母

3.至少一個小寫字母

4.至少一個數字

5.沒有除2,3,4點外的其他特殊字符,也就是說,隻包含字母和數字

對於這一類驗證問題,正則無疑是首選,但如果不用正則,寫成驗證邏輯,也是可以的。

對於這個問題,我們劃分成兩項檢測:

根據第一點要求,建立長度檢測。

var lengthValid = function(pass){
    return pass.length >= 6;
};

根據第2,3,4,5點,建立內容檢測函數。

它的邏輯是這樣的:統計密碼字符串內的大小寫字母,數字的個數,如果遇到特殊符號,直接返回false。

var contentValid = function(pass){
    var lowerNum = 0;
    var upperNum = 0;
    var numNum = 0;
    for(var i=0;i= 48 && code <= 57){
            numNum++;
        }
        else if(code >= 65 && code <= 90){
            upperNum++;
        }
        else if(code >= 97 && code <= 122){
            lowerNum++;
        }
        else{
            return false;
        }
    }
    return lowerNum && upperNum && numNum;
};

最後,將長度檢測和內容檢測整合在一起,構成密碼驗證函數:

function validate(password) {
    return lengthValid(password) && contentValid(password);
}

發佈留言