zoukankan      html  css  js  c++  java
  • 来自Google的密码强度Javascript验证代码

    先看看效果吧:
     
      1 <script type="text/javascript">
      2 var agt = navigator.userAgent.toLowerCase();
      3 var is_op = (agt.indexOf("opera"!= -1);
      4 var is_ie = (agt.indexOf("msie"!= -1&& document.all && !is_op;
      5 var is_ie5 = (agt.indexOf("msie 5"!= -1&& document.all && !is_op;
      6 
      7 function CreateXmlHttpReq(handler) {
      8   var xmlhttp = null;
      9   if (is_ie) {
     10     var control = (is_ie5) ? "Microsoft.XMLHTTP" : "Msxml2.XMLHTTP";
     11     try {
     12       xmlhttp = new ActiveXObject(control);
     13       xmlhttp.onreadystatechange = handler;
     14     } catch (ex) {
     15       alert("You need to enable active scripting and activeX controls");  
     16     }
     17 
     18   } else {
     19     xmlhttp = new XMLHttpRequest();
     20     xmlhttp.onload = handler;
     21     xmlhttp.onerror = handler;
     22   }
     23   return xmlhttp;
     24 }
     25 
     26 
     27 function XmlHttpPOST(xmlhttp, url, data) {
     28   try {
     29     xmlhttp.open("POST", url, true);
     30     xmlhttp.setRequestHeader("Content-Type""application/x-www-form-urlencoded; charset=UTF-8");
     31     xmlhttp.send(data);
     32 
     33   } catch (ex) {
     34     // do nothing
     35   }
     36 }
     37 
     38 
     39 var myxmlhttp;
     40 ratingMsgs = new Array(6);
     41 ratingMsgColors = new Array(6);
     42 barColors = new Array(6);
     43 
     44 ratingMsgs[0= "太短";
     45 ratingMsgs[1= "";
     46 ratingMsgs[2= "一般";
     47 ratingMsgs[3= "很好";
     48 ratingMsgs[4= "极佳";
     49 ratingMsgs[5= "未评级";
     50 
     51 ratingMsgColors[0= "#676767";
     52 ratingMsgColors[1= "#aa0033";
     53 ratingMsgColors[2= "#f5ac00";
     54 ratingMsgColors[3= "#6699cc";
     55 ratingMsgColors[4= "#008000";
     56 ratingMsgColors[5= "#676767";
     57 
     58 barColors[0= "#dddddd";
     59 barColors[1= "#aa0033";
     60 barColors[2= "#ffcc33";
     61 barColors[3= "#6699cc";
     62 barColors[4= "#008000";
     63 barColors[5= "#676767";
     64 
     65 function CreateRatePasswdReq () 
     66 {
     67 var passwd = getElement('Passwd').value;
     68 var email = getElement('Email').value;
     69 var lastname = getElement('LastName').value;
     70 var firstname = getElement('FirstName').value;
     71 var min_passwd_len = 6;
     72 
     73 
     74 if (passwd.length < min_passwd_len)  
     75 {
     76   if (passwd.length > 0
     77   {
     78     DrawBar(0);
     79   } 
     80   else 
     81   {
     82     ResetBar();
     83   }
     84 }
     85 else 
     86 {
     87     passwd = escape(passwd);
     88     var params = 'Passwd='+passwd+'&Email='+email+'&FirstName='+firstname+'&LastName='+lastname;
     89     myxmlhttp = CreateXmlHttpReq(RatePasswdXmlHttpHandler);
     90     XmlHttpPOST(myxmlhttp, "https://www.google.com/accounts/RatePassword", params);
     91 }
     92 }
     93 
     94 function getElement(name) 
     95 {
     96   if (document.all) 
     97   {
     98       return document.all(name);
     99   }
    100   return document.getElementById(name);
    101 }
    102 
    103 function RatePasswdXmlHttpHandler() 
    104 // Can't check status since safari doesn't support it
    105   if (myxmlhttp.readyState != 4
    106   {
    107   return;
    108   }
    109   rating = parseInt(myxmlhttp.responseText);
    110   DrawBar(rating);
    111 }
    112 
    113 function DrawBar(rating) 
    114 {
    115 var posbar = getElement('posBar');
    116 var negbar = getElement('negBar');
    117 var passwdRating = getElement('passwdRating');
    118 var barLength = getElement('passwdBar').width;
    119 
    120 if (rating >= 0 && rating <= 4
    121 {       //We successfully got a rating
    122     posbar.style.width = barLength / 4 * rating + "px";
    123     negbar.style.width = barLength / 4 * (4 - rating) + "px";
    124 }
    125 else 
    126 {
    127     posbar.style.width = "0px";
    128     negbar.style.width = barLength + "px";
    129     rating = 5// Not rated Rating
    130 }
    131 posbar.style.background = barColors[rating]
    132 passwdRating.innerHTML = "<font color='" + ratingMsgColors[rating] +"'>" + ratingMsgs[rating] + "</font>";
    133 }
    134 
    135 
    136   //Resets the password strength bar back to its initial state without any message showing.
    137   function ResetBar() 
    138   {
    139     var posbar = getElement('posBar');
    140     var negbar = getElement('negBar');
    141     var passwdRating = getElement('passwdRating');
    142     var barLength = getElement('passwdBar').width;
    143 
    144     posbar.style.width = "0px";
    145     negbar.style.width = barLength + "px";
    146     passwdRating.innerHTML = "";
    147   }
    148 
    149 </script>
    150 
    151 <table width="60%"  border="0">
    152     <tr>
    153         <td width="30%">
    154             <input type="hidden" value="" id="FirstName" size="30">
    155             <input type="hidden" value="" id="LastName" size="30">
    156             <input type="hidden" id="Email" value="" size="30">
    157             <input type="password" id="Passwd" value="" onkeyup="CreateRatePasswdReq()" size="30">
    158         </td>
    159         <td width="70%">
    160             <table cellpadding="0" cellspacing="0" border="0">
    161                 <tr>
    162                     <td width="200" id="passwdBar">
    163                         <table cellpadding="0" cellspacing="0" border="0">
    164                             <tr>
    165                                 <td nowrap valign="top"  height="15px"><font color="#808080" size="-1" face="Arial, sans-serif"><div id="passwdRating"></div></font></td>
    166                             </tr>
    167                             <tr>
    168                                 <td height="3px"></td>
    169                             </tr>
    170                             <tr>
    171                                 <td colspan="2">
    172                                     <table cellpadding="0" bgcolor="#ffffff" cellspacing="0" border="0" width="200">
    173                                         <tr>
    174                                             <td width="0%" id="posBar" bgcolor="#e0e0e0" height="4px"></td>
    175                                             <td width="100%" id="negBar" bgcolor="#e0e0e0" height="4px"></td>
    176                                         </tr>
    177                                     </table>
    178                                 </td>
    179                             </tr>
    180                         </table>
    181                     </td>
    182                 </tr>
    183             </table>
    184         </td>
    185     </tr>
    186 </table>
    187 
    本文地址:http://www.cnblogs.com/anjou/archive/2006/11/16/563032.html
  • 相关阅读:
    C#连接SQL Server测试
    2015结束,迎接2016
    notepad ++ 编辑 powershell profile 文件时的诡异问题
    安静的思考
    把生活过的像模像样已经很不容易
    查询SQL Server 版本信息
    一段SQL代码
    javascript面向对象编程的3种常见封装形式解析
    javascript中new操作符的原理
    关于javascript中this 指向的4种调用模式
  • 原文地址:https://www.cnblogs.com/anjou/p/563032.html
Copyright © 2011-2022 走看看