方法一:正则表达式(火狐不支持个人没解决)
function pwdlevel(v)
{
var value = v;
var strength = 0;
var element=$("#pwdstrength");
if (value.length>=6){
//正则规则
var str = value.replace(/^(?:([a-z])|([A-Z])|([0-9])|(.)){5,}|(.)*$/g,"$1$2$3$4").length;
if(str == 1)
{
strength += 1;
}
if(str == 2 || str == 3)
{
strength += 1;
}
if(str == 4)
{
strength += 1;
}
switch (strength){
case 1:
element.removeClass().addClass("strengthA");
break;
case 2:
element.removeClass().addClass("strengthB");
break;
case 3:
element.removeClass().addClass("strengthC");
break;
default:
break;
}
}
}
方法二:密码由 数字和字母下划线_ 组成。
if (//d/i.test(value)){
strength += 1;
}
if (/[a-z]/i.test(value)){
strength += 1;
}
if (/[-_]/i.test(value)){
strength += 1;
}
方法三:
$( document ).ready( function (){ $("#pwd").bind("keyup",function(){ //密码是由数字 字母 和下滑线 _ 等特殊字符 组成 validateRules.pwdlevel($(this).val()); }); }); var validateRules = { pwdlevel:function(v) { var value = v; var strength = 0; var element=$(".pass-level"); if (value.length>=6) { //开始check var str = this.checkStrong(value); switch (str) { case 1: element.removeClass().addClass("pass-level"); element.html(" <s></s> <em>弱</em> "); break; case 2: element.removeClass().addClass("pass-level level2"); element.html(" <s></s> <em>中</em> "); break; case 3: element.removeClass().addClass("pass-level level2"); element.html(" <s></s> <em>中</em> "); break; case 4: element.removeClass().addClass("pass-level level3"); element.html(" <s></s> <em>强</em> "); break; default: break; } } }, checkStrong:function(sPW) { var Modes=0; for (var i=0;i<sPW.length;i++) { //测试每一个字符的类别并统计一共有多少种模式. //测试某个字符是属于哪一类 var iN = sPW.charCodeAt(i) var cm = (function(iN){ if (iN>=48 && iN <=57) //数字 return 1; if (iN>=65 && iN <=90) //大写字母 return 2; if (iN>=97 && iN <=122) //小写 return 4; else return 8; //特殊字符 })(iN); Modes|=cm; } var bt =(function(num){ modes=0; for (i=0;i<4;i++) { if (num & 1) modes++; num>>>=1; } return modes; })(Modes); return bt; } };