我需要一个正则表达式来检查:
密码至少包含八个字符,包括至少一个数字,包括小写和大写字母以及特殊字符,例如#、?、!。
它不能是您的旧密码,也不能包含您的用户名、“密码”或“网站名称”
这是我的验证表达式,用于八个字符,包括一个大写字母、一个小写字母和一个数字或特殊字符。
(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$"
如果密码必须是八个字符,包括一个大写字母、一个特殊字符和字母数字字符,我怎么写?
我在前面的一个答案中找到了一个解决方案:
*至少8个字符,至少1个大写字母、1个小写字母、1位数字和1个特殊字符:
"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,}"*
…不适用于我,但以下是一个简化版,效果很好(添加任何您喜欢的特殊字符,我在这里添加了#),并添加数字规则,就像您对字母的处理一样:
"^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[$@$!%*?&]){8,}"
保持简单和直接:
这对你来说总是有好处的。
正则表达式:^(.{0,7}|[^a-z]{1,}|[^a-z]{0,}|[^\d]{2,})$|[\s]
如果您的密码与上面的正则表达式匹配,则该密码无效。
如果没有匹配项,则您的密码有效,并且包含至少8个字符、一个大写字母、一个小写字母和一个符号或特殊字符。它也不包含空格、制表符或换行符。
Regex细分
.{0,7}-如果密码包含0到7个字符,则匹配。[^a-z]{1,}-匹配,如果找不到小写[^A-Z]{1,}-如果找不到大写字母,则匹配[^\d]{1,}-如果找不到数字(介于[0-9]之间),则匹配[\s]-如果找到空格、制表符或换行符,则匹配。
使用这种方法,在允许的符号方面没有限制或限制。如果要限制为允许的符号数,只需将[^\W]更改为[^YourSymbols]即可。