javascript判断密码强弱监测。
Java代码



- #Register .Pstyle6 .textstyle1 {
- padding:8px 22px;
- margin:0 1px;
- border-top:5px solid #CCCCCC;
- }
- #Register .Pstyle6 .textstyle2 {
- padding:8px 22px;
- margin:0 1px;
- border-top:5px solid #009900;
- }
#Register .Pstyle6 .textstyle1 {
padding:8px 22px;
margin:0 1px;
border-top:5px solid #CCCCCC;
}
#Register .Pstyle6 .textstyle2 {
padding:8px 22px;
margin:0 1px;
border-top:5px solid #009900;
}
Java代码



- <p class=”Pstyle3″>登录密码 <span class=”red”>*</span>
- <input class=”inputstyle3″ type=”password” name=”pwd” id=”pwd” onkeyup=”javascript:checkpwd(this)”/>
- <%–<input class=”inputstyle3″ type=”password” name=”pwd” id=”pwd”/>–%>
- </p>
- <p class=”Pstyle6″ id=”pwd_label”>
- <span id=”p1″ class=”textstyle1″>弱</span>
- <span id=”p2″ class=”textstyle1″>中</span>
- <span id=”p3″ class=”textstyle1″>强</span>
- </p>
<p>登录密码 <span>*</span>
<input type="password" name="pwd" id="pwd" onkeyup="javascript:checkpwd(this)"/>
<%--<input type="password" name="pwd" id="pwd"/>--%>
</p>
<p id="pwd_label">
<span id="p1">弱</span>
<span id="p2">中</span>
<span id="p3">强</span>
</p>
Java代码



- <script>
- function testpwd(pwd, userName) {
- var score = 0;
- if (pwd.length < 4) {
- return -4;
- }
- if (typeof(userName) != ’undefined’ && pwd.toLowerCase() == userName.toLowerCase()) {
- return -2
- }
- score += pwd.length * 4;
- score += ( repeat(1, pwd).length - pwd.length ) * 1;
- score += ( repeat(2, pwd).length - pwd.length ) * 1;
- score += ( repeat(3, pwd).length - pwd.length ) * 1;
- score += ( repeat(4, pwd).length - pwd.length ) * 1;
- if (pwd.match(/(.*[0-9].*[0-9].*[0-9])/)) {
- score += 5;
- }
- if (pwd.match(/(.*[!,@,#,$,%,^,&,*,?,_,~].*[!,@,#,$,%,^,&,*,?,_,~])/)) {
- score += 5;
- }
- if (pwd.match(/([a-z].*[A-Z])|([A-Z].*[a-z])/)) {
- score += 10;
- }
- if (pwd.match(/([a-zA-Z])/) && pwd.match(/([0-9])/)) {
- score += 15;
- }
- if (pwd.match(/([!,@,#,$,%,^,&,*,?,_,~])/) && pwd.match(/([0-9])/)) {
- score += 15;
- }
- if (pwd.match(/([!,@,#,$,%,^,&,*,?,_,~])/) && pwd.match(/([a-zA-Z])/)) {
- score += 15;
- }
- if (pwd.match(/^\w+$/) || pwd.match(/^\d+$/)) {
- score -= 10;
- }
- if (score < 0) {
- score = 0;
- }
- if (score > 100) {
- score = 100;
- }
- return score;
- function repeat(len, str) {
- var res = ”";
- for (var i = 0; i < str.length; i++) {
- var repeated = true;
- for (var j = 0, max = str.length - i - len; j < len && j < max; j++) {
- repeated = repeated && (str.charAt(j + i) == str.charAt(j + i + len));
- }
- if (j < len) repeated = false;
- if (repeated) {
- i += len - 1;
- repeated = false;
- } else {
- res += str.charAt(i);
- }
- }
- return res;
- }
- }
- function checkpwd(pwd) {
- var userName = document.getElementById(‘userName’).value;
- var score = testpwd(pwd.value, userName);
- var pwd_label = document.getElementById(‘pwd_label’);
- if(score<34){
- $(“#p1″).addClass(“textstyle2″);
- $(“#p2″).removeClass(“textstyle2″);
- $(“#p3″).removeClass(“textstyle2″);
- }else if(score<68){
- $(“#p1″).addClass(“textstyle2″);
- $(“#p2″).addClass(“textstyle2″);
- $(“#p3″).removeClass(“textstyle2″);
- }else{
- $(“#p1″).addClass(“textstyle2″);
- $(“#p2″).addClass(“textstyle2″);
- $(“#p3″).addClass(“textstyle2″);
- }
- }
- </script>
<script>
function testpwd(pwd, userName) {
var score = 0;
if (pwd.length < 4) {
return -4;
}
if (typeof(userName) != 'undefined' && pwd.toLowerCase() == userName.toLowerCase()) {
return -2
}
score += pwd.length * 4;
score += ( repeat(1, pwd).length - pwd.length ) * 1;
score += ( repeat(2, pwd).length - pwd.length ) * 1;
score += ( repeat(3, pwd).length - pwd.length ) * 1;
score += ( repeat(4, pwd).length - pwd.length ) * 1;
if (pwd.match(/(.*[0-9].*[0-9].*[0-9])/)) {
score += 5;
}
if (pwd.match(/(.*[!,@,#,$,%,^,&,*,?,_,~].*[!,@,#,$,%,^,&,*,?,_,~])/)) {
score += 5;
}
if (pwd.match(/([a-z].*[A-Z])|([A-Z].*[a-z])/)) {
score += 10;
}
if (pwd.match(/([a-zA-Z])/) && pwd.match(/([0-9])/)) {
score += 15;
}
if (pwd.match(/([!,@,#,$,%,^,&,*,?,_,~])/) && pwd.match(/([0-9])/)) {
score += 15;
}
if (pwd.match(/([!,@,#,$,%,^,&,*,?,_,~])/) && pwd.match(/([a-zA-Z])/)) {
score += 15;
}
if (pwd.match(/^\w+$/) || pwd.match(/^\d+$/)) {
score -= 10;
}
if (score < 0) {
score = 0;
}
if (score > 100) {
score = 100;
}
return score;
function repeat(len, str) {
var res = "";
for (var i = 0; i < str.length; i++) {
var repeated = true;
for (var j = 0, max = str.length - i - len; j < len && j < max; j++) {
repeated = repeated && (str.charAt(j + i) == str.charAt(j + i + len));
}
if (j < len) repeated = false;
if (repeated) {
i += len - 1;
repeated = false;
} else {
res += str.charAt(i);
}
}
return res;
}
}
function checkpwd(pwd) {
var userName = document.getElementById('userName').value;
var score = testpwd(pwd.value, userName);
var pwd_label = document.getElementById('pwd_label');
if(score<34){
$("#p1").addClass("textstyle2");
$("#p2").removeClass("textstyle2");
$("#p3").removeClass("textstyle2");
}else if(score<68){
$("#p1").addClass("textstyle2");
$("#p2").addClass("textstyle2");
$("#p3").removeClass("textstyle2");
}else{
$("#p1").addClass("textstyle2");
$("#p2").addClass("textstyle2");
$("#p3").addClass("textstyle2");
}
}
</script>
效果:


- 大小: 12.2 KB
- 查看图片附件