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,校驗失敗返回falsefunction?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);
}
如果單純用正則的話,好難好難,我能力有限,實現不了,