Regex帮助密码

Regex help for password

本文关键字:密码 帮助 Regex      更新时间:2023-09-26

我想使用以下规则强制使用强密码:
-一个小写字符
-一个大写字符
-一个数字
-一个特殊字符

通过互联网搜索,我想到了这个:

^(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$&*])(?=.*[1-9])[a-zA-Z1-9]{8,}$

但是它在rubular.com上不起作用一些帮助吗?

试试这个:

^(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$&*])(?=.*[0-9]).{8,}$

解释:

(?=.*[a-z])密码必须包含小写字母

(?=.*[A-Z])密码必须包含一个大写字母

(?=.*[!@#$&*])密码必须包含符号

(?=.*[0-9])密码必须包含数字

所有这些都是前瞻性的,意思是每个测试的东西实际上不包括它在匹配或移动匹配位置向前。因此,在所有这些测试之后,就匹配而言,我们仍然处于字符串的开头。

.{8,}整个密码必须大于等于8个字符。(^$锚定在字符串的开始和结束,因此它们确保匹配包含整个字符串)。

原来的问题是[a-zA-Z1-9]{8,}。这部分意味着整个密码必须由八个或更多的字母和数字组成。这与之前要求出现一个特殊字符的要求相冲突。而且,原文并没有把0当作一个数字,我觉得这很傻。