gpt4 book ai didi

javascript - 正则表达式匹配具有两个或更多特殊字符的强密码

转载 作者:可可西里 更新时间:2023-11-01 02:33:57 26 4
gpt4 key购买 nike

我需要使用具有以下要求的 javascript 正则表达式匹配密码字段:

  • 至少 15 个字符
  • 两个或多个小写字母
  • 两个或多个大写字母
  • 两位或更多位
  • 以下两个或多个特殊字符:!@#$%^&*-

我有一个处理大多数情况的正则表达式:

/^.*(?=.{15,})(?=.{2,}\d)(?=.{2,}[a-z])(?=.{2,}[A-Z])(?=.{2,}[\!\@\#\$\%\^\&\*\-]).*$/

这里的问题是符号,它适用于:

P@ssw0rdP@ssw0rd
Pssw0rdPssw0rd@@
Pssw0rd@@Pssw0rd

但不是:

@@Pssw0rdPssw0rd

我设置了一个随 secret 码生成器来对此进行详尽测试,因此非常感谢任何想法。谢谢!

最佳答案

/^(?=(?:.*[a-z]){2})(?=(?:.*[A-Z]){2})(?=(?:.*\d){2})(?=(?:.*[!@#$%^&*-]){2}).{15,}$/

你的前瞻是错误的。图案

(?=.{2,}[class])

表示匹配2个或更多字符(不管是什么字符),然后跟1个所需类别的字符。这与您指定的“所需类别的 2 个或更多字符”完全不同。

要正确测试所需类别的字符是否在文本中,请使用

(?=.*[class])

既然你想检查它两次,重复这个模式

(?=.*[class].*[class])
# equivalent to (?=(?:.*[class]){2})

关于javascript - 正则表达式匹配具有两个或更多特殊字符的强密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4670639/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com