I need to validate a password with these rules:
I'm not completely sure I have this right, but since your last requirement is "Can contain the following characters: !@#$%&*" I am assuming that other special characters are not allowed. In other words, the only allowed characters are letters, digits, and the special characters !@#$%&*.
If this is the correct interpretation, the following regex should work:
^((?=.*\d)(?=.*[a-zA-Z])[a-zA-Z0-9!@#$%&*]{6,20})$
Note that I changed your character class [A-z]
to [a-zA-Z]
, because [A-z]
will also include the following characters: [\]^_`
I also added beginning and end of string anchors to make sure you don't get a partial match.