使用正则表达式进行密码验证可能不是一个好主意,但使用前瞻和 or 运算符|
允许您这样做:
^(?:(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])|(?=.*[#$%=@!{},`~&*()'?.:;_|^/+\"-])(?=.*[a-z])(?=.*[0-9])|(?=.*[A-Z])(?=.*[#$%=@!{},`~&*()'?.:;_|^/+\"-])(?=.*[0-9])|(?=.*[A-Z])(?=.*[a-z])(?=.*[#$%=@!{},`~&*()'?.:;_|^/+\"-])).{8,32}$
这个正则表达式有 4 个部分:
(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])
确保至少有 1 个下 alpha、1 个上 alpha 和 1 个数字。
(?=.*[#$%=@!{},`~&*()'?.:;_|^/+\"-])(?=.*[a-z])(?=.*[0-9])
确保至少有 1 个特殊字符、1 个大写字母和 1 个数字。
(?=.*[A-Z])(?=.*[#$%=@!{},`~&*()'?.:;_|^/+\"-])(?=.*[0-9])
确保至少有 1 个大写字母、1 个特殊字符和 1 个数字。
(?=.*[A-Z])(?=.*[a-z])(?=.*[#$%=@!{},`~&*()'?.:;_|^/+\"-])
确保至少有 1 个大写字母、1 个小写字母和 1 个特殊字符。
与这四个一起使用|
(分组为非捕获组)可以为您提供 4 次验证中的 3 次。
然后.{8,32}
用于密码的长度