正则表达式验证密码必须由大小写字母、数字、特殊字符组成
今天老板要求我们网站密码规则必须包含大写字母小写字母,数字和特殊字符,且长度大于8位,30天未登陆锁定账号,35天必须修改密码,且最近12次密码不能相同。
下面介绍一下我是怎么验证密码复杂度验证的,什么超期锁定,修改密码的,对比一下上次登陆或修改的时间就OK啦。
密码复杂度验证分两部分,第一部分是验证是否包含四种不同类型的字符,第二部分就是限制长度大于8,下面我们就来实现吧,我们用正则表达式来验证:
首先,验证是否包含不同类型的字符,我首先想到的是正向肯定预查表达式 (?=pattern) ,这个式子的作用是:
由此我们就得到了第一部分的验证表达式:
/(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[\W_])/
上面的正则意思是至少要有一个大写字母一个小写字母,一个数字,一个特殊符号,在这里解释一下 \W 这个表达式,它表示 “ 匹配任何非单词字符。等价于“[^A-Za-z0-9_] ”。可以看到,它是排除了下划线 _ 的,所以我在上面加上了下划线。
OK,第一部分完成了,剩下验证长度就小菜一碟啦,下面直接给大家写上,就不多做解释了:
/(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[\W_]).{8,}/
大功告成,谢谢大家一步步看到这里哦!
2024-06-11 广告