你得驗證一段密碼確認它符合以下的條件:
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<pass.length;i++){ var code = pass.charCodeAt(i); if(code >= 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); }
以上就是 JavaScript趣題:密碼驗證的內容,更多相關內容請關注PHP中文網(www.php.cn) !