Revision cc250b85-dbb4-4559-8c51-a8ebdf84d50a - Code Review Stack Exchange
I'm trying to write regex to validate the password for the given rule.
Passwords must be at least 8 characters in length and **contain at least 3 of the following 4 types of characters:**
- lower case letters (i.e. a-z)
- upper case letters (i.e. A-Z)
- numbers (i.e. 0-9)
- special characters (e.g. !@#$&*)
I was going through [this][1] discussion and found [this][2] really great answer over there.
Now I'm trying to write regex for the mentioned requirements and I came up with the solution like this
^(?=.*[A-Z])(?=.*[!@#$&*])(?=.*[0-9])(?=.*[a-z]).{8,}|
(?=.*[!@#$&*])(?=.*[0-9])(?=.*[a-z]).{8,}|
(?=.*[A-Z])(?=.*[0-9])(?=.*[a-z]).{8,}|
(?=.*[A-Z])(?=.*[!@#$&*])(?=.*[a-z]).{8,}|
(?=.*[A-Z])(?=.*[!@#$&*])(?=.*[0-9]).{8,}$
and it is working perfect see [rubular][3] but I want to optimize these regex and I'm not sure If there are any way to simplify this.
Any suggestion will be appreciated.
[1]: http://stackoverflow.com/questions/5142103/regex-to-validate-password-strength
[2]: http://stackoverflow.com/questions/5142103/regex-to-validate-password-strength#answer-5142164
[3]: http://www.rubular.com/r/Drwq39CvTi