正则表达式密码复杂性要求在创建或更改密码时必须应用以下四个特征中的任意三个
。
- 字母字符 - 至少 1 个大写字母字符
- 字母字符 - 至少 1 个小写字母字符
- 数字字符 - 至少 1 个数字字符
- 特殊字符 - 至少 1 个特殊字符
我正在尝试使用以下代码,但它不适用于特殊字符
(?=^.{6,}$)((?=.*\d)(?=.*[A-Z])(?=.*[a-z])|(?=.*\d)(?=.*[^A-Za-z0-9])(?=.*[a-z])|(?=.*[^A-Za-z0-9])(?=.*[A-Z])(?=.*[a-z])|(?=.*\d)(?=.*[A-Z])(?=.*[^A-Za-z0-9]))^.*
我希望针对以下 4 种情况验证我的正则表达式
匹配案例
- P@ssword
- 密码1
- p@ssword1
- p@12345
最佳答案
我认为您可以使用的正则表达式是:
(?=^.{6,}$)(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])(?=.*[^A-Za-z0-9]).*
我不确定为什么您的正则表达式中有这么多 or 运算符,但这个匹配如果:
(?=^.{6,}$)
- 字符串大于 5 个字符(?=.*[0-9])
- 包含一个数字(?=.*[A-Z])
- 包含一个大写字母(?=.*[a-z])
- 包含一个小写字母(?=.*[^A-Za-z0-9])
- 一个不是字母数字的字符。
关于javascript - 在 Javascript 中用于密码验证的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17102946/