xf.zhouwenjun 发表于 2013-2-7 21:21:24

[JS]验证密码强度

调用方法,在input加上onkeyup="ADKPasswordStrength.Check(this,'lb')";
ADKPasswordStrength.Check
方法说明
参数
iobj:输入框的ID或者OBJECT
sobj:显示信息的ID或者OBJECT

css定义3中CSS 分别是高,一般,弱!可以自己改CSS


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style type="text/css">
.ADKPasswordStrength_low{ background-color:#CC0000;}
.ADKPasswordStrength_middle{ background-color:#33CCFF;}
.ADKPasswordStrength_height{ background-color:#66FF00;}
</style>
<script type="text/javascript">
var ADKPasswordStrength =
{
   Level : ["高","一般","弱"],
   LevelValue : ,//强度值
   Factor : ,//字符加数,分别为字母,数字,其它
   KindFactor : ,//密码含几种组成的加数
   Regex : [//g,/\d/g,/[^a-zA-Z0-9]/g] //字符正则数字正则其它正则
}
ADKPasswordStrength.StrengthValue=function(pwd)
{
   var strengthValue = 0;
   var ComposedKind = 0;
   for(var i = 0 ; i < this.Regex.length;i++)
   {
       var chars = pwd.match(this.Regex);
      if(chars != null)
      {
                strengthValue += chars.length * this.Factor;
                ComposedKind ++;
         }
   }
    strengthValue += this.KindFactor;
    return strengthValue;
}
   
ADKPasswordStrength.StrengthLevel = function(pwd)
{
   var value = this.StrengthValue(pwd);
    for(var i = 0 ; i < this.LevelValue.length ; i ++)
    {
      if(value >= this.LevelValue )
      return this.Level;
    }
}

ADKPasswordStrength.Check=function(iobj,sobj)
{
    var inputobj,showobj;
   
    inputobj=typeof(iobj)=="string"?document.getElementById(iobj):iobj;
    showobj=typeof(sobj)=="string"?document.getElementById(sobj):sobj;

    if(!showobj || !inputobj)
      return;

    var lv=ADKPasswordStrength.StrengthLevel(inputobj.value);
    if(lv=="高")
    {
      showobj.innerHTML="高";
      showobj.className="ADKPasswordStrength_height"
    }
    else if(lv=="一般")
    {
      showobj.innerHTML="一般";
      showobj.className="ADKPasswordStrength_middle"
    }
    else if(lv=="弱")
    {
      showobj.innerHTML="弱";
      showobj.className="ADKPasswordStrength_low"
    }
}
</script>
</head>
<body>
<input type="password" id="textpass" size="20" onkeyup="ADKPasswordStrength.Check(this,'lb');" /><div id="lb"></div>
</body>
</html>

页: [1]
查看完整版本: [JS]验证密码强度