在用户注册时,为了最大化的协助用户设置安全有效的密码,往往会加一个密码强度验证,下面是一个由正则表达式对密码的验证,返回长度代表密码强度。
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>