我需要一个正则表达式来检查:
密码至少包含八个字符,包括至少一个数字,包括小写和大写字母以及特殊字符,例如#、?、!。
它不能是您的旧密码,也不能包含您的用户名、“密码”或“网站名称”
这是我的验证表达式,用于八个字符,包括一个大写字母、一个小写字母和一个数字或特殊字符。
(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$"
如果密码必须是八个字符,包括一个大写字母、一个特殊字符和字母数字字符,我怎么写?
一个更“通用”的版本(?),不允许任何英文字母作为特殊字符。
^(?=\S*[a-z])(?=\S*[A-Z])(?=\S*\d)(?=\S*[^\w\s])\S{8,}$
变量pwdList=['@@V4-\3Z'zTzM{>k',‘12qw!“QW12',123qweASD!"#',“1qA!"#$%&',“Günther32”,'123456789',‘qweASD123’,'qweqQWEQWEqw',“12qwAS!”],re=/^(?=\S*[a-z])(?=[S*[a-z])((?=`S*\d)(?=\S*[^\w\S])\S{8,}$/;pwdList.forEach(函数(pw){document.write('<span style=“color:'+(re.test(pw)?'green':'red')+'”>'+pw+'</span><br/>');});
保持简单和直接:
这对你来说总是有好处的。
正则表达式:^(.{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]即可。