关注下方评论区提供WEB前端学习,编程学习
需要一个密码强度正则表达式在用户注册时校验用户密码强度:密码至少8个字符,包括1个大写字母,1个小写字母和1个数字或特殊字符,例如#,?,!。网上搜索了一些解决方案分享给大家。
方案一
至少8-16个字符,至少1个大写字母,1个小写字母和1个数字,其他可以是任意字符:
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[^]$/
或者:
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[\s\S]$/
其中[\s\S]中的\s空白符,\S非空白符,所以[\s\S]是任意字符。也可以用[\d\D]、[\w\W]来表示。
至少8个字符,至少1个大写字母,1个小写字母和1个数字,不能包含特殊字符(非数字字母):
^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]$
至少8个字符,至少1个字母,1个数字和1个特殊字符:
^(?=.*[A-Za-z])(?=.*\d)(?=.*[$@$!%*#?&])[A-Za-z\d$@$!%*#?&]$
至少8个字符,至少1个大写字母,1个小写字母和1个数字:
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]$
至少8个字符,至少1个大写字母,1个小写字母,1个数字和1个特殊字符:
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]
最少8个最多十个字符,至少1个大写字母,1个小写字母,1个数字和1个特殊字符:
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]
方案二
还有,你可以使用这个正则表达式:
^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).$
这个正则表达式将强制执行这些规则:
至少1个大写字母English letter,(?=.*?[A-Z])
至少1个小写英文字母,(?=.*?[a-z])
至少1位数字,(?=.*?[0-9])
至少有1个特殊字符,(?=.*?[#?!@$%^&*-])
最小8个长度.
方案三
正则表达式没有AND运算符,所以编写正则表达式与有效密码匹配是非常困难的,当有效性被某些东西和其他东西等定义时…
但是,正则表达式确实有1个OR运算符,所以只需应用DeMorgan的定理,并编写1个与无效密码相匹配的正则表达式:
任何少于8个字符或任何没有数字或任何没有大写字母或任何没有小写字母或任何没有特殊字符的任何东西。
所以:^(.|[^0-9]*|[^A-Z]*|[^a-z]*|[a-zA-Z0-9]*)$,如果有什么匹配的话,这是1个无效的密码。
方案四
由于特殊字符仅限于键盘中的特殊字符,因此可用于任何特殊字符:
^(?=.*?[A-Z])(?=(.*[a-z]))(?=(.*[\d]))(?=(.*[\W]))(?!.*\s).$
这个正则表达式将强制执行这些规则:
– 至少1个大写英文字母
– 至少1个小写英文字母
– 至少1位数字
– 至少1个特殊字符
– 最少8个长度
方案五
根据我的情况,我遇到了最受欢迎的答案。例如,我的验证失败,其中包含;或[等字符。我对 white-listing 我的特殊字符不感兴趣,所以我用[^\w\s]作为测试 – 简单地把非字符(包括数字)和非空格字符放在一起。总而言之,这是对我有用的
至少8字符
至少1数字字符
至少1小写字母
至少1大写字母
至少1特殊字符
/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^\w\s]).$/简单演示涵盖各种情况
方案六
您可以使用此方法:
至少1个大写英文字母
至少1个小写英文字母
至少1位数字
至少1个特殊字符
方案七
尝试这个:
– 最少6个字符
– 至少有1个大写字符
– 至少1个小写字符
– 至少1个特殊字符
表达式:
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&.])[A-Za-z\d$@$!%*?&.]/
可选特殊字符:
/^(?=.*\d)(?=.*[a-zA-Z]).$/
如果不需要最小和最大条件,则删除.
– 6是最小字符数限制
– 20是最大字符限制
– ?=表示匹配表达式
领取专属 10元无门槛券
私享最新 技术干货