正在处理一个需要我使用模式属性的密码字段的项目。 并没有真正做过很多正则表达式的事情,并且想知道是否有人可以提供帮助。
字段要求如下:
- 不能包含“password”一词
- 长度必须为 8-12
- 必须有 1 个大写字母
- 必须有 1 个小写字母
- 必须有 1 位数字
现在,到目前为止我有以下内容:
[^(password)].(?=.*[0-9])?=.*[a-zA-Z]).{8,12}
这行不通。我们可以得到它,这样除了匹配的密码字符串之外,其他一切都可以正常工作。
提前致谢, 安迪
编辑:我们现在使用的方法(嵌套在下面的评论中)是:
^(?!.*(P|p)(A|a)(S|s)(S|s)(W|w)(O|o)(R|r)(D|d)).(?=.*\d)(?=.*[a-zA-Z]).{8,12}$
感谢您的帮助
最佳答案
对“必须包含”条件使用一系列锚定前瞻:
^(?!.*(?i)password)(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,12}$
我已将“忽略大小写”开关 (?i)
添加到“密码”要求中,因此无论字母大小写如何,它都会拒绝“该单词”。
关于正则表达式密码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19585988/