我会回复彼得莫滕森,但我没有足够的声誉。
他的表情非常适合每个指定的最低要求。他的不需要特殊字符的表达式的问题是它们也不允许特殊字符,因此它们也强制执行最大要求,我不相信 OP 要求。通常,您希望允许您的用户设置他们想要的密码强度;为什么要限制强密码?
所以,他的“最少八个字符,至少一个字母和一个数字”表达:
^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$
达到最低要求,但剩下的字符只能是字母和数字。要允许(但不要求)特殊字符,您应该使用以下内容:
^(?=.*[A-Za-z])(?=.*\d).{8,}$
允许任何字符
或者
^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d$@$!%*#?&]{8,}$
允许特定的特殊字符
同样,“最少八个字符,至少一个大写字母,一个小写字母和一个数字:”
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$
符合最低要求,但只允许使用字母和数字。利用:
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{8,}$
允许任何字符
或者
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[A-Za-z\d$@$!%*?&]{8,}
允许特定的特殊字符。