【问题标题】:Blacklist word in RegExp statementRegExp 语句中的黑名单词
【发布时间】:2015-06-15 12:32:36
【问题描述】:

我想创建一个符合条件的 ReExp 表达式:

  • 允许使用所有非空白字符。
  • 最少 8 个字符。
  • 最大长度不受限制。
  • 至少应包含 1 个小写字母、1 个大写字母和 1 个数字。
  • 禁止使用“pass”和“password”字样。

如果没有最后一条规则,它将如下所示:

^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?\d)[\S]{8,}$

如何在此处添加列入黑名单的单词?

【问题讨论】:

  • 这是什么语言的?

标签: regex passwords


【解决方案1】:

添加一个否定的前瞻断言。

^(?!pass(?:word)?$)(?=.*?[A-Z])(?=.*?[a-z])(?=.*?\d)\S{8,}$

【讨论】:

  • 再次感谢阿维纳什。
  • 感谢您的帮助,这几乎解决了问题。然而,像“123_ABC_pass_foo”这样的东西仍然通过正则表达式。假设我想完全排除某些关键字的任何可能出现(在字符串的任何位置)。我该怎么做?
  • 然后^(?!.*?pass(?:word)?)(?=.*?[A-Z])(?=.*?[a-z])(?=.*?\d)\S{8,}$
猜你喜欢
  • 2012-06-29
  • 1970-01-01
  • 2011-11-04
  • 2013-05-05
  • 1970-01-01
  • 2016-07-18
  • 2021-05-06
  • 2014-06-21
  • 1970-01-01
相关资源
最近更新 更多