来自Google的密码强度Javascript验证代码

  • 来源: 互联网 作者: rocket   2008-03-20/13:27
  • 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 Create
    XmlHttpReq(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 pass
    word 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

    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多