JSFiddle - React, Tailwind, and code Playground
by Nalin Sajwan
HTML
<pre id="finalOutput">
</pre>
JavaScript
// Current default password policy
// ^ Start anchor
// (?=.*[a-z]) Ensures string has at least one lowercase letter.
// (?=.*[A-Z]) Ensures string has at least one uppercase letter.
// (?=.*[0-9]) Ensures string has at least one digit.
// (?=.*[!@#\$%\^&\*]) Ensures string has at leatone special case letter.
// (?=.{8,}) Ensures string is of minimum length 8.
// ([^\\s]+) Ensures string has no spaces in it ( use 2 \ (backslash) when placining in new RegExp else use single \ (backslash) ).
// $ End anchor.
var regex = new RegExp("^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#\$%\^&\*])(?=.{8,})([^\\s]+)$");
var passwordsArr = [
"nalin!C96",
"nalin@C96",
"nalin#C96",
"nalin$C96",
"nalin%C96",
"nalin^C96",
"nalin&C96",
"nalin*C96",
" nalin!C96",
"nalin@C96 ",
"nalin #C96",
"nalin$ C96",
"nalin % C96",
" nalin^C96 ",
"nalin & C 96",
" nalin * C 96"
];
var result = {
"passedPasswords": [],
"failedPasswords": []
};
console.log("regex string ==> ", regex.toString());
passwordsArr.forEach(function(password, index) {
var output = regex.test(password);
console.log("\n\npassword ==> ", password);
console.log("output ==> ", output);
if(output) {
result.passedPasswords.push(password);
} else {
result.failedPasswords.push(password);
}
});
document.getElementById("finalOutput").innerHTML = JSON.stringify(result, null, 4);
console.log("\n\nresult ==> ", JSON.stringify(result, null ,4));