正则表达式密码问题

标签 regex

正在处理一个需要我使用模式属性的密码字段的项目。 并没有真正做过很多正则表达式的事情,并且想知道是否有人可以提供帮助。

字段要求如下:

  • 不能包含“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/

相关文章:

php 或 javascript 正则表达式 - 将第一个字母和其余字符串作为 2 个单独的值返回

javascript - 检查多个字符串以匹配多个正则表达式(均为数组)

java - 如何解析正弦函数?

regex - .htaccess HTTPS 重定向(一页除外) laravel

正则表达式:删除除第一个字符和最后一个数字之外的所有内容

python - 正则化网页中的行

python - 从单词和词性生成多级词典

regex - POSIX 扩展正则表达式中 "whitespace"的特殊字符/转义符是什么?

姓名的正则表达式

javascript - 正则表达式查找第二个字符串