JavaScript下正则表达式密码强度验证
http://www.cnblogs.com/laolaowhn/archive/2008/03/11/1099808.html
在用户注册时,为了最大化的协助用户设置安全有效的密码,往往会加一个密码强度验证,下面是一个由正则表达式对密码的验证,返回长度代表密码强度。
var getStrength = function(passwd) {
intScore = 0;
if (passwd.match(/[a-z]/)) // [verified] at least one lower case letter
{
intScore = (intScore+1)
} if (passwd.match(/[A-Z]/)) // [verified] at least one upper case letter
{
intScore = (intScore+5)
} // NUMBERS
if (passwd.match(//d+/)) // [verified] at least one number
{
intScore = (intScore+5)
} if (passwd.match(/(/d.*/d.*/d)/)) // [verified] at least three numbers
{
intScore = (intScore+5)
} // SPECIAL CHAR
if (passwd.match(/[!,@#$%^&*?_~]/)) // [verified] at least one special character
{
intScore = (intScore+5)
} if (passwd.match(/([!,@#$%^&*?_~].*[!,@#$%^&*?_~])/)) // [verified] at least two special characters
{
intScore = (intScore+5)
} // COMBOS
if (passwd.match(/[a-z]/) && passwd.match(/[A-Z]/)) // [verified] both upper and lower case
{
intScore = (intScore+2)
} if (passwd.match(//d/) && passwd.match(//D/)) // [verified] both letters and numbers
{
intScore = (intScore+2)
} // [Verified] Upper Letters, Lower Letters, numbers and special characters
if (passwd.match(/[a-z]/) && passwd.match(/[A-Z]/) && passwd.match(//d/) && passwd.match(/[!,@#$%^&*?_~]/))
{
intScore = (intScore+2)
}
return intScore;
}
-----------------------------------------------------------------------
<tr>
<th nowrap style="HEIGHT: 25px">
新邮箱密码:
</th>
<td noWrap align="left" bgColor="#ffffff">
<input name="txtNewPwd" id="txtNewPwd" οnmοuseοut="this.className='box1'" οnkeyup="pwStrength(this.value)" maxlength="16" class="newufeild" οnmοuseοver="this.className='box2'" οnblur="showTipMessage(false) " οnfοcus="showTipMessage(true)" type="password" size="30" />
<span id="strength_L">弱</span><span id="strength_M">中</span><span id="strength_H"> 强</span>
</td>
</tr>