/****************************************************************************************** * 检查密码强度 ******************************************************************************************/ checkPasswordLevel = function(strPassword) { var result = 0; if ( strPassword.length == 0) result += 0; else if ( strPassword.length<8 && strPassword.length >0 ) result += 5; else if (strPassword.length>10) result += 25; else result += 10; //check letter var bHave = false; var bAll = false; var capital = strPassword.match(/[A-Z]{1}/);//找大写字母 var small = strPassword.match(/[a-z]{1}/);//找小写字母 if ( capital == null && small == null ) { result += 0; //没有字母 bHave = false; } else if ( capital != null && small != null ) { result += 20; bAll = true; } else { result += 10; bAll = true; } //alert("检查字母:"+result); //检查数字 var bDigi = false; var digitalLen = 0; for ( var i=0; i= '0' ) { bDigi = true; digitalLen += 1; //alert(strPassword[i]); } } if ( digitalLen==0 )//没有数字 { result += 0; bDigi = false; } else if (digitalLen>2)//2个数字以上 { result += 20 ; bDigi = true; } else { result += 10; bDigi = true; } //alert("数字个数:" + digitalLen); //alert("检查数字:"+result); //检查非单词字符 var bOther = false; var otherLen = 0; for (var i=0; i='0' && strPassword.charAt(i)<='9') || (strPassword.charAt(i)>='A' && strPassword.charAt(i)<='Z') || (strPassword.charAt(i)>='a' && strPassword.charAt(i)<='z')) continue; otherLen += 1; bOther = true; } if ( otherLen == 0 )//没有非单词字符 { result += 0; bOther = false; } else if ( otherLen >1)//1个以上非单词字符 { result +=25 ; bOther = true; } else { result +=10; bOther = true; } //alert("检查非单词:"+result); //检查额外奖励 if ( bAll && bDigi && bOther) result += 5; else if (bHave && bDigi && bOther) result += 3; else if (bHave && bDigi ) result += 2; //alert("检查额外奖励:"+result); var level = ""; //根据分数来算密码强度的等级 if ( result >=90 ) level = "rank r7"; else if ( result>=80) level = "rank r6"; else if ( result>=70) level = "rank r5"; else if ( result>=60) level = "rank r4"; else if ( result>=50) level = "rank r3"; else if ( result>25) level = "rank r2"; else if ( result>0) level = "rank r1"; else level = "rank r0"; // alert("return:"+level); return level.toString(); } /****************************************************************************************** * 设置密码强度样式 ******************************************************************************************/ setPasswordLevel = function(passwordObj, levelObj) { var level = "rank r0"; level = checkPasswordLevel(passwordObj.value); levelObj.className = level; //alert("level"+level); }