javascript密码强度计算方法

方法一:正则表达式(火狐不支持个人没解决)

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;
	 }
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值