美文网首页
正则表达式验证密码必须由大小写字母、数字、特殊字符组成

正则表达式验证密码必须由大小写字母、数字、特殊字符组成

作者: 且须文雅 | 来源:发表于2020-01-02 10:48 被阅读0次

今天老板要求我们网站密码规则必须包含大写字母小写字母,数字和特殊字符,且长度大于8位,30天未登陆锁定账号,35天必须修改密码,且最近12次密码不能相同。

下面介绍一下我是怎么验证密码复杂度验证的,什么超期锁定,修改密码的,对比一下上次登陆或修改的时间就OK啦。

密码复杂度验证分两部分,第一部分是验证是否包含四种不同类型的字符,第二部分就是限制长度大于8,下面我们就来实现吧,我们用正则表达式来验证:
首先,验证是否包含不同类型的字符,我首先想到的是正向肯定预查表达式(?=pattern),这个式子的作用是:

正向肯定预查,在任何匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如,“Windows(?=95|98|NT|2000)”能匹配“Windows2000”中的“Windows”,但不能匹配“Windows3.1”中的“Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。

由此我们就得到了第一部分的验证表达式:
/(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[\W_])/
上面的正则意思是至少要有一个大写字母一个小写字母,一个数字,一个特殊符号,在这里解释一下\W这个表达式,它表示 “匹配任何非单词字符。等价于“[^A-Za-z0-9_]”。可以看到,它是排除了下划线_的,所以我在上面加上了下划线。

OK,第一部分完成了,剩下验证长度就小菜一碟啦,下面直接给大家写上,就不多做解释了:
/(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[\W_]).{8,}/

大功告成,谢谢大家一步步看到这里哦!

相关文章

  • 正则表达式

    验证密码强度 必须同时包含大小写字母、数字、特殊字符、8-16位。 方法一:var reg=/^(?=.*[a-z...

  • Mac brew安装MySQL8.0.21后忘记密码(重置密码篇

    前序: mysql8以后,对密码有了更高的要求 要有大小写字母和数字特殊字符 一.跳过mysql的密码验证,修改配...

  • 正则

    正则表达式的用处 测试用户名(必须由字母数字下划线组成) 用户密码(必须同时包含大写小写数字) 确认密码 邮箱 电...

  • js常用正则表达式

    密码正则表达式 1.至少6位并由数字和字母组成: 2.至少6位并由字母(区分大小写)、数字、符号其中2种组成: 邮...

  • 正则表达式验证密码必须由大小写字母、数字、特殊字符组成

    今天老板要求我们网站密码规则必须包含大写字母小写字母,数字和特殊字符,且长度大于8位,30天未登陆锁定账号,35天...

  • iOS-问题:正则表达式转义字符:\

    有如下正则表达式: 强密码(必须包含大小写字母和数字的组合,不能使用特殊字符,长度在 8-10 之间):^(?=....

  • 使用正则验证密码是否合格

    密码至少8位、包含数字、大小写字母、特殊字符。 "^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])...

  • 表单验证

    小写字母 大写字母 大小写字母 邮箱 手机号验证 判断是否是数字 6-10位字符 6-16位数字字母密码验证 限制...

  • iOS 8到16位密码包含大小写字符数字验证

    产品要求密码一定是包含大小写字符、数字组合的密码,所以对密码做了验证。由于正则表达式不精,所以分别做了验证。

  • 生成16位验证码

    需求1: 生成16位随机验证码 需求2: 要求验证码包含大小写字母,数字,特殊字符

网友评论

      本文标题:正则表达式验证密码必须由大小写字母、数字、特殊字符组成

      本文链接:https://www.haomeiwen.com/subject/erbnoctx.html