首页 | IT新闻 | 硬件 | 操作系统 | 开发 | 网络编程 | 数据库 | 热门框架 | 网络安全 | 组网 | 建站指南 | 网页制作 | 特效 | 实用技巧 | 服务器 | 办公 | QQ | 探索 | 社区

  • 技术部落
  • 部落首页 > 网络编程 > JavaScript > 正文
  • 改善用户体验 制作实用密码强度提示
      2007-4-12  来源:蓝色理想  编辑:Jsbulo  热度:

      功能说明:在用户注册或更改密码时,根据用户输入进行检测并返回结果。能有效地提醒用户提高帐号的安全性。

      类似效果:Live.com中的修改密码功能

      简单预览

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>密码</title>
    <style type="text/css">
    body{
     font-size:12px;
     font-family: Arial, Helvetica, sans-serif;
     margin:0;
    }
    form{
     margin:2em;
    }
    #chkResult{margin-left:53px;height:15px;}
    </style>
    </head>

    <body>
    <form name="form1">
     <label for="pwd">用户密码</label>
     <input type="password" name="pwd" onblur="chkpwd(this)" />
     <div id="chkResult"></div>
     <label for="pwd2">重复密码</label>
     <input type="password" name="pwd2" />
    </form>
    <script type="text/javascript">
     function chkpwd(obj){
      var t=obj.value;
      var id=getResult(t);
      
      //定义对应的消息提示
      var msg=new Array(4);
      msg[0]="密码过短。";
      msg[1]="密码强度差。";
      msg[2]="密码强度良好。";
      msg[3]="密码强度高。";
      
      var sty=new Array(4);
      sty[0]=-45;
      sty[1]=-30;
      sty[2]=-15;
      sty[3]=0;
      
      var col=new Array(4);
      col[0]="gray";
      col[1]="red";
      col[2]="#ff6600";
      col[3]="Green";
      
      //设置显示效果
      var bImg="http://bbs.blueidea.com/attachments/2006/12/7/pwdlen_dSIPeEGQWxfO.gif";//一张显示用的图片
      var sWidth=300;
      var sHeight=15;
      var Bobj=document.getElementById("chkResult");

      Bobj.style.fontSize="12px";
      Bobj.style.color=col[id];
      Bobj.style.width=sWidth + "px";
      Bobj.style.height=sHeight + "px";
      Bobj.style.lineHeight=sHeight + "px";
      Bobj.style.background="url(" + bImg + ") no-repeat left " + sty[id] + "px";
      Bobj.style.textIndent="20px";
      Bobj.innerHTML="检测提示:" + msg[id];
     }
     
     //定义检测函数,返回0/1/2/3分别代表无效/差/一般/强
     function getResult(s){
      if(s.length < 4){
       return 0;
      }
      var ls = 0;
      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--;
      }
      return ls
     }
    </script>
    </body>

    </html>

     使用方法

      第一步:保存图片

      第二步:根据您的需要修改js文件中该图片地址。如下所示:

    var bImg="pwdlen.gif";//一张显示用的图片

      第三步:在需要检测的页面中引用这个脚本文件,如下所示:

    <script type="text/javascript" src="chkpwd.js"></script>

      第四步:在网页的表单中,找到密码输入框添加onblur事件驱动,然后添加一个Div,如下所示:

    <input type="password" name="pwd" onblur="chkpwd(this)" />
    <div id="chkResult">强度检测</div>

      第五步:根据您页面的需要通过样式表CSS重新定义#chkResult的摆放位置,以合适您网页的整体布局。

      完整效果预览点击这里

      源文件下载本地下载

      作者jxdawei 的个人博客:http://www.iwcn.net