mengyao||Andy 都市家园--www.edongguan.com

欢迎光临 都市家园 www.edongguan.com

mengyao ID:mengyao
347590次访问,排名148好友3人,关注者13
mengyao的文章
原创 191 篇
翻译 1 篇
转载 167 篇
评论 156 篇
mengyao的公告
最近评论
ysv1118:你牛!我全要,怎么收藏?
dg_dfgw:向你致敬,向你学习。
linyechengwei:太谢谢了,收藏了.
linyechengwei:太谢谢了,收藏了.
linyechengwei:太谢谢了,收藏了.
文章分类
收藏
    相册
    成长历程
    我的鑫空
    经典合作联盟
    king
    LoveCherry技术无极限
    nenith1981
    Span Zhang(张友邦)
    专注.NET
    周公的专栏(RSS)
    大可山
    天轰穿.net/vs2005/ajax入门(RSS)
    张明的博客
    桃花源
    正宁老乡
    深蓝的智慧(RSS)
    清清月儿(RSS)
    英雄本色(RSS)
    邓大哥(RSS)
    金色海洋工作室
    高海东的专栏
    自娱自乐
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 JavaScript密码强度检测源代码 收藏

    新一篇: C#下xmlhttp 中文乱码完美解决方案 | 旧一篇: VS2005辅助工具整理


    1.Body代码部分
    <body>
    <h4>密码强度检测</h4>
    <table width="100%"  border="0" cellspacing="1" cellpadding="0">
      <tr>
        <td width="100" align="right">强度显示:</td>
        <td>
     <script language="javascript">
      var ps = new PasswordStrength();
      ps.setSize("200","20");
      ps.setMinLength(5);
     </script>
     </td>
      </tr>
      <tr>
        <td align="right">密码检测:</td>
        <td><input name="pwd" type="password" id="pwd" style="width:200px" onKeyUp="ps.update(this.value);"></td>
      </tr>
    </table>
    </body>


    2.JS代码部分

    //密码强度;
    function PasswordStrength(showed){ 
     this.showed = (typeof(showed) == "boolean")?showed:true;
     this.styles = new Array(); 
     this.styles[0] = {backgroundColor:"#EBEBEB",borderLeft:"solid 1px #FFFFFF",borderRight:"solid 1px #BEBEBE",borderBottom:"solid 1px #BEBEBE"}; 
     this.styles[1] = {backgroundColor:"#FF4545",borderLeft:"solid 1px #FFFFFF",borderRight:"solid 1px #BB2B2B",borderBottom:"solid 1px #BB2B2B"};
     this.styles[2] = {backgroundColor:"#FFD35E",borderLeft:"solid 1px #FFFFFF",borderRight:"solid 1px #E9AE10",borderBottom:"solid 1px #E9AE10"};
     this.styles[3] = {backgroundColor:"#95EB81",borderLeft:"solid 1px #FFFFFF",borderRight:"solid 1px #3BBC1B",borderBottom:"solid 1px #3BBC1B"};
     
     this.labels= ["弱","中","强"];

     this.divName = "pwd_div_"+Math.ceil(Math.random()*100000);
     this.minLen = 5;
     
     this.width = "150px";
     this.height = "16px";
     
     this.content = "";
     
     this.selectedIndex = 0;
     
     this.init(); 
    }
    PasswordStrength.prototype.init = function(){
     var s = '<table cellpadding="0" id="'+this.divName+'_table" cellspacing="0" style="width:'+this.width+';height:'+this.height+';">';
     s += '<tr>';
     for(var i=0;i<3;i++){
      s += '<td id="'+this.divName+'_td_'+i+'" width="33%" align="center"><span style="font-size:1px">&nbsp;</span><span id="'+this.divName+'_label_'+i+'" style="display:none;font-family: Courier New, Courier, mono;font-size: 12px;color: #000000;">'+this.labels[i]+'</span></td>';
     } 
     s += '</tr>';
     s += '</table>';
     this.content = s;
     if(this.showed){
      document.write(s);
      this.copyToStyle(this.selectedIndex);
     } 
    }
    PasswordStrength.prototype.copyToObject = function(o1,o2){
     for(var i in o1){
      o2[i] = o1[i];
     }
    }
    PasswordStrength.prototype.copyToStyle = function(id){
     this.selectedIndex = id;
     for(var i=0;i<3;i++){
      if(i == id-1){
       this.$(this.divName+"_label_"+i).style.display = "inline";
      }else{
       this.$(this.divName+"_label_"+i).style.display = "none";
      }
     }
     for(var i=0;i<id;i++){
      this.copyToObject(this.styles[id],this.$(this.divName+"_td_"+i).style);   
     }
     for(;i<3;i++){
      this.copyToObject(this.styles[0],this.$(this.divName+"_td_"+i).style);
     }
    }
    PasswordStrength.prototype.$ = function(s){
     return document.getElementById(s);
    }
    PasswordStrength.prototype.setSize = function(w,h){
     this.width = w;
     this.height = h;
    }
    PasswordStrength.prototype.setMinLength = function(n){
     if(isNaN(n)){
      return ;
     }
     n = Number(n);
     if(n>1){
      this.minLength = n;
     }
    }
    PasswordStrength.prototype.setStyles = function(){
     if(arguments.length == 0){
      return ;
     }
     for(var i=0;i<arguments.length && i < 4;i++){
      this.styles[i] = arguments[i];
     }
     this.copyToStyle(this.selectedIndex);
    }
    PasswordStrength.prototype.write = function(s){
     if(this.showed){
      return ;
     }
     var n = (s == 'string') ? this.$(s) : s;
     if(typeof(n) != "object"){
      return ;
     }
     n.innerHTML = this.content;
     this.copyToStyle(this.selectedIndex);
    }
    PasswordStrength.prototype.update = function(s){
     if(s.length < this.minLen){
      this.copyToStyle(0);
      return;
     }
     var ls = -1;
     if (s.match(/[a-z]/ig)){
      ls++;
     }
     if (s.match(/[0-9]/ig)){
      ls++;
     }
      if (s.match(/(.[^a-z0-9])/ig)){
      ls++;
     }
     if (s.length < 6 && ls > 0){
      ls--;
     }
      switch(ls) {
       case 0:
        this.copyToStyle(1);
        break;
       case 1:
        this.copyToStyle(2);
        break;
       case 2:
        this.copyToStyle(3);
        break;
       default:
        this.copyToStyle(0);
      }
    }

     

    发表于 @ 2007年04月02日 21:57:00|评论(loading...)|编辑

    新一篇: C#下xmlhttp 中文乱码完美解决方案 | 旧一篇: VS2005辅助工具整理

    评论

    #wenyiyi 发表于2007-04-06 10:02:01  IP: 61.171.175.*
    艰难并努力的LOOKING。。。。。
    #long75719507 发表于2007-04-06 16:21:00  IP: 61.183.183.*
    呵呵,谢谢
    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © mengyao