I want a function checkPassword function, which should check if the password parameter adheres to the following rules:
You can use the following regex and get the content of the capturing group to check if your string is valid:
.*\d{3}.*|^([\w\+$#/\\]{6,})$
Working demo
Using \w
allows A-Za-z0-9_
if you don't want underscore on your regex you have to replace \w
by A-Za-z0-9
For the following examples:
pass12p --> Pass
pass125p --> Won't pass
asdfasf12asdf34 --> Pass
asdfasf12345asdf34 --> Won't pass
Match information is:
MATCH 1
1. `pass12p`
MATCH 2
1. `asdfasf12asdf34`
The best way would be to use two separate regular expressions. First, make sure the password matches this first one, which checks for adherence to rules #1 and #2:
[A-Za-z0-9#$\/\\\+]{6,}
Then, make sure the password does not match this second regular expression, which checks for the presence of a sequence of 3 consecutive numbers anywhere in the password:
\d{3}
function checkPassword(str) {
console.log( /^(?!.*\d{3})[+a-z\d$#\\/]{6,}$/i.test(str) );
}