我需要一个正则表达式来检查:
密码至少包含八个字符,包括至少一个数字,包括小写和大写字母以及特殊字符,例如#、?、!。
它不能是您的旧密码,也不能包含您的用户名、“密码”或“网站名称”
这是我的验证表达式,用于八个字符,包括一个大写字母、一个小写字母和一个数字或特殊字符。
(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$"
如果密码必须是八个字符,包括一个大写字母、一个特殊字符和字母数字字符,我怎么写?
试试这个:
最少六个字符至少一个大写字符至少一个小写字符至少一个特殊字符
表达式:
"/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&.])[A-Za-z\d$@$!%*?&.]{6, 20}/"
可选特殊字符:
至少一个特殊字符至少有一个号码特殊字符是可选的最少6个字符,最多16个字符
表达式:
"/^(?=.*\d)(?=.*[a-zA-Z]).{6,20}$/"
如果不需要最小和最大条件,则删除。{6, 16}
6是最小字符限制20是最大字符限制?= 均值匹配表达式
一个更“通用”的版本(?),不允许任何英文字母作为特殊字符。
^(?=\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/>');});
另一种选择是使用否定字符类在前瞻断言中使用对比度,可以选择匹配任何字符,但在匹配应该匹配的字符之前列出的字符除外。
^(?=[^A-Z\n]*[A-Z])(?=[^a-z\n]*[a-z])(?=[^0-9\n]*[0-9])(?=[^#?!@$%^&*\n-]*[#?!@$%^&*-]).{8,}$
查看正则表达式演示
在部分情况下,模式匹配:
^字符串的开头(?=[^A-Z\n]*[A-Z])正向前瞻,断言除A-Z或换行外的任何字符的0+倍。然后匹配字符a-Z(?=[^a-z\n]*[a-z])字符a-z的方法相同(?=[^0-9\n]*[0-9])数字0-9的方法相同(?=[^#?!@$%^&*\n-]*[#?!@$%^&*-])对于您认为特殊的字符,使用相同的方法.{8,}匹配除换行符以外的任何字符的8倍或更多倍$字符串结尾
笔记
点也可以与空格匹配。如果您不想允许匹配空间,那么。{8,}可以更改为\S{8}以匹配8个或更多非空白字符使用任意一种。或/S可以匹配比前瞻断言中指定的字符更多的字符。如果只想匹配断言中使用的字符,可以进行更改。{8,}使用字符类仅匹配允许的字符[#?!@$%^&*A-Za-z0-9-]{8、}
常量正则表达式=/^(?=[^A-Z\n]*[A-Z])(?=[^A-Z\n]*[A-Z])((?=[^0-9\n]*[0-9])(!=[^#?!@$%^&*\n-]*[#?!@$%^&*-])。{8,}$/;[“abcA1#!A”,“#!asdfSFD1;”,“#a f F1;”,"1111111111",“aaaaaaa”,"11111111",“aaaaaaa”,"########",“aA1#”].对于每个(s=>console.log(正则表达式测试)`匹配-->${s}`:`不匹配-->$}`));
我会回复彼得·莫滕森,但我没有足够的声誉。
他的表达完全符合每一项规定的最低要求。他的表达式不需要特殊字符的问题是,它们也不允许特殊字符,所以它们也强制执行最大要求,我不相信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-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}$"