T&5 3 - , - , , . , , :
regex.push("[A-Z][^A-Z]*[A-Z]");
regex.push("[0-9][^0-9]*[0-9]");
regex.push("[@$!%*#?&][^@$!%*#?&]*[@$!%*#?&]");
, , 0+ , , ( (antonym class) *), .
: , passed > 2. , passed. passed, .
.
$(function() {
$("#txtPassword").bind("keyup", function() {
var text = $(this).val();
if (text.length == 0) {
$("#password_strength").html("");
return;
}
var regex = new Array();
regex.push("[A-Z][^A-Z]*[A-Z]");
regex.push("[^A-Z$@$!%*#?&0-9]");
regex.push("[0-9][^0-9]*[0-9]");
regex.push("[@$!%*#?&][^@$!%*#?&]*[@$!%*#?&]");
var passed = 0;
for (var i = 0; i < regex.length; i++) {
if (new RegExp(regex[i]).test(text)) {
console.log(text + " passed: " + regex[i]);
passed++;
}
}
if (text.length >= 9) {
console.log(text + " passed length check");
passed++;
}
var color = "";
var strength = "";
switch (passed) {
case 0:
case 1:
strength = "Weak";
color = "red";
break;
case 2:
strength = "Good";
color = "darkorange";
break;
case 3:
case 4:
strength = "Strong";
color = "green";
break;
case 5:
strength = "Very Strong";
color = "darkgreen";
break;
}
$("#password_strength").html(strength);
$("#password_strength").css("color", color);
});
});
body {
font-family: Arial;
font-size: 10pt;
}
#password_strength {
font-weight: bold;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="txtPassword" />
<span id="password_strength"></span>