古詩詞大全網 - 成語解釋 - javascript 密碼要求至少八位,要求必須是數字和字母組成,不用正則!

javascript 密碼要求至少八位,要求必須是數字和字母組成,不用正則!

//校驗密碼,校驗成功返回true,校驗失敗返回false

function?checkPassword(password){

var?numberCount,//數字字符數目

letterCount,//字母字符數目

numberRegExp?=?/[0-9]/,//數字正則

letterRegExp?=?/[a-z]/i,//字母正則,不區分大小寫

length?=?(password?=?password?||?'').length;

if(length?<?8){

return?false;

}

numberCount?=?letterCount?=?0;

for(var?i?=?0,?char;?i?<?length;?i++){

char?=?password.charAt(i);//取得每個字符

if(numberRegExp.test(char)){

numberCount?+=?1;//數字字符數目加1?

}else?if(letterRegExp.test(char)){

letterCount?+=?1;//字母字符數目加1?

}else{

return?false;//即不是字母又不數字,直接返回false

}

}

return?!(numberCount?==?length?||?letterCount?==?length);

}

另壹優化版本,完全不用正則

//校驗密碼,校驗成功返回true,校驗失敗返回false

function?checkPassword(password){

function?isNumber(charCode){

//48為字符'0'的unicode碼,57為字符'9'的unicode碼

return?charCode?>=?48?&&?charCode?<=?57

}

function?isLetter(charCode){

//65為字符'A'的unicode碼,90為字符'Z'的unicode碼

//90為字符'a'的unicode碼,122為字符'z'的unicode碼

return?(charCode?>=?65?&&?charCode?<=?90)?

||?(charCode?>=?97?&&?charCode?<=?122);

}

var?numberCount,//數字字符數目

letterCount,//字母字符數目

length?=?(password?=?password?||?'').length;

if(length?<?8){

return?false;

}

numberCount?=?letterCount?=?0;

for(var?i?=?0,?charCode;?i?<?length;?i++){

charCode=?password.charCodeAt(i);//取得每個字符

if(isNumber(charCode)){

numberCount?+=?1;//數字字符數目加1?

}else?if(isLetter(charCode)){

letterCount?+=?1;//字母字符數目加1?

}else{

return?false;//即不是字母又不數字,直接返回false

}

}

return?!(numberCount?==?length?||?letterCount?==?length);

}

如果單純用正則的話,好難好難,我能力有限,實現不了,