来自Google的密码强度Javascript验证代码
给自己一点时间接受自己,爱自己,趁着下午茶的时间来学习图老师推荐的来自Google的密码强度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 Rating130 }
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