包含 4 种字符类型中的 3 种的密码的正则表达式
我处理的密码策略如下:
- 包括大写字母、小写字母、数字和符号,这 4 种字符中的 3 种
- 可以使用四种类型的字符:大写字母、小写字母、数字和密码。
- 字符数至少为 8位
- 使用的符号是“!@;:”(实际上,可以根据自己的情况来指定,我省略了它,因为它可变)
生成的正则如下:
^((?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])|(?=.*[a-z])(?=.*[A-Z])(?=.*[!@;:])|(?=.*[A-Z])(?=.*[0-9])(?=.*[!@;:])|(?=.*[a-z])(?=.*[0-9])(?=.*[!@;:]))([a-zA-Z0-9!@;:]){8,}$
包括大写字母、小写字母、数字和符号,这 4 种字符中的 3 种
((?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])|(?=.*[a-z])(?=.*[A-Z])(?=.*[!@;:])|(?=.*[A-Z])(?=.*[0-9])(?=.*[!@;:])|(?=.*[a-z])(?=.*[0-9])(?=.*[!@;:]))
具体说明:
- (?=.*[a-z]) (?=.*[A-Z]) (?=.*[0-9]) ⇒ 包括小写字母、大写字母和数字
- (?=.*[a-z]) (?=.*[A-Z]) (?=.*[!@;:]) ⇒ 包括小写字母、大写字母和符号
- (?=.*[A-Z]) (?=.*[0-9]) (?=.*[!@;:]) ⇒ 包括大写字母、数字和符号
- (?=.*[a-z]) (?=.*[0-9]) (?=.*[!@;:]) ⇒ 包含小写字母、数字和符号
它变成 OR。 因此,它只描述了 3 种字符类型的 4 种组合模式。
具体情况可以根据自己项目要求进行更改。
就是这么简单。
我项目中是这么定义的:
/^((?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!;:@#$%?^&*_-]))([a-zA-Z0-9!;:@#$%?^&*_-]){10,16}$/,