我要求使用正则表达式验证密码 以下是验证标准
密码应包含4种类型中的任何3种:
我已经提出了以下正则表达式,但问题是它只能验证前9个字符并允许任何字符后的单词
^(?=.{9,})((?=.*\d)(?=.*[a-z])(?=.*[A-Z])|(?=.*\d)(?=.*[a-z])(?=.*[!@#$%&])|(?=.*\d)(?=.*[A-Z])(?=.*[!@#$%&])|(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%&])).*$
编辑:我已经遇到了类似的问题,但我的问题不同,因为它预计会满足4个标准中的3个并且只有有限的字符集。
任何帮助将不胜感激!
答案 0 :(得分:1)
替换你的最终“由字符组成”检查
.*$
检查“仅由允许的字符构成”
[A-Za-z0-9$&%!#@]*$
前者允许您使用任何您想要的角色,只要满足其他规则;后者确保输入中的每个字符都是允许的字符之一。
答案 1 :(得分:-1)
这是一个奇怪的密码正则表达式检查要求......
(^[a-zA-Z0-9]+$)|(^[a-z0-9!@#$%&]+$)|(^[A-Z0-9!@#$%&]+$)|(^[a-zA-Z!@#$%&]+$)
4选择3有4种可能性。这里有4个捕获组。我想你可以弄清楚它在做什么......