我需要一个正则表达式来检查:

密码至少包含八个字符,包括至少一个数字,包括小写和大写字母以及特殊字符,例如#、?、!。

它不能是您的旧密码,也不能包含您的用户名、“密码”或“网站名称”

这是我的验证表达式,用于八个字符,包括一个大写字母、一个小写字母和一个数字或特殊字符。

(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$"

如果密码必须是八个字符,包括一个大写字母、一个特殊字符和字母数字字符,我怎么写?


当前回答

至少八个字符,至少一个字母和一个数字:

"^(?=.*[A-Za-z])(?=.*\d)[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)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$"

最少八个字符,最多十个字符,至少一个大写字母,一个小写字母,一位数字和一个特殊字符:

"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,10}$"

其他回答

导入JavaScript文件jquery.validate.min.js。

您可以使用此方法:

$.validator.addMethod("pwcheck", function (value) {
    return /[\@\#\$\%\^\&\*\(\)\_\+\!]/.test(value) && /[a-z]/.test(value) && /[0-9]/.test(value) && /[A-Z]/.test(value)
});

至少一个大写英文字母至少一个小写英文字母至少一个数字至少一个特殊字符

我在这里发现了很多问题,所以我自己做了。

这里是它的荣耀,有测试:

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*([^a-zA-Z\d\s])).{9,}$

https://regex101.com/r/DCRR65/4/tests

需要注意的事项:

不使用\w,因为其中包含我正在测试的_。我在匹配符号时遇到了很多麻烦,但没有匹配行的结尾。没有具体指定符号,这也是因为不同地区的键盘上可能有不同的符号。

至少八个字符,至少一个字母和一个数字:

"^(?=.*[A-Za-z])(?=.*\d)[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)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$"

最少八个字符,最多十个字符,至少一个大写字母,一个小写字母,一位数字和一个特殊字符:

"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,10}$"

我会回复彼得·莫滕森,但我没有足够的声誉。

他的表达完全符合每一项规定的最低要求。他的表达式不需要特殊字符的问题是,它们也不允许特殊字符,所以它们也强制执行最大要求,我不相信OP要求的。通常情况下,您希望允许您的用户将密码设置为他们想要的强度;为什么要限制强密码?

因此,他的“最少八个字符,至少一个字母和一个数字”表达:

^(?=.*[A-Za-z])(?=..*\d)[A-Za-z\d]{8,}$

达到了最低要求,但剩余的字符只能是字母和数字。要允许(但不要求)特殊字符,您应该使用以下内容:

^(?=.*[A-Za-z])(?=.*\d).{8,}$以允许任何字符

or

^(?=.*[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,}$允许任何字符

or

^(?=.*[a-z])(?=..*[a-z])((?=.*\d)[a-Za-z\d$@$!%*?&]{8,}以允许特定的特殊字符。

使用此正则表达式,满足所有条件:

^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^A-Za-z0-9]).{8,}$

此正则表达式将强制执行以下规则:

至少一个大写字母(?=.*?[A-Z])至少一个小写字母(?=.*?[a-z])至少一个数字,(?=.*?[0-9])至少一个特殊字符,即前3个条件中不包含的任何字符,(?=.*?[^A-Za-z0-9])长度至少为8。{8,}