【问题标题】:Regex for Password Strength [duplicate]密码强度的正则表达式 [重复]
【发布时间】:2014-12-20 01:16:00
【问题描述】:

有人可以帮助我吗, 我需要一个密码表达式来满足以下条件:

  • 至少 8 个字符,最多 15 个字符。
  • 至少一个大写字母。
  • 至少一个小写字母。
  • 至少 1 个特殊字符。
  • 至少 1 个数字。

如果可能,这些必须以任何顺序都可以接受。

这是我发现但不满足上述条件的尝试,我尝试过修改,但我的问题在于以任何顺序排列这些并且至少指定任何一个字符,我尝试减少下面的每个表达式也适合:

^(?=.*[A-Z].*[A-Z])(?=.*[!@#$&*])(?=.*[0-9].*[0-9])(?=.*[a-z].*[a-z].*[a-z]).{8}$

^                         Start anchor
(?=.*[A-Z].*[A-Z])        Ensure string has two uppercase letters.
(?=.*[!@#$&*])            Ensure string has one special case letter.
(?=.*[0-9].*[0-9])        Ensure string has two digits.
(?=.*[a-z].*[a-z].*[a-z]) Ensure string has three lowercase letters.
.{8}                      Ensure string is of length 8.
$                         End anchor.

没有重复,请查看标记,除非您确定它是重复的

【问题讨论】:

  • 嗨,玛丽亚。展示你的尝试..
  • 我认为 regexp 不是解决这个问题的合适工具...
  • @Maria88 你能举个例子,特别是你所说的特殊字符是什么意思吗?
  • @fzzle 你发现的和她刚刚发现的一样(并在她的问题中更新):)
  • 复杂的密码规则通常不会带来更安全的密码,重要的只是最小长度。人们无法记住大量的强密码,这样的规则会干扰好的密码方案。人们可以非常有创意地绕过这些规则,例如通过使用弱密码,如“Password-2014”。通常,您最终会得到较弱的密码,而不是较强的密码。

标签: javascript jquery regex password-protection


【解决方案1】:

试试这个正则表达式会帮助你

/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[\W\_])[a-zA-Z0-9\W\_]{8,15}$/

【讨论】:

  • 非常感谢谢谢
  • 我建议使用.*? 而不是.*,它的性能会更好。 $ 之前的模式也应该是 .{8,15}
  • @AvinashRaj 现在检查
  • @AvinashRaj 0aA_aaaa 在字符串一个数字、大写、小写字母和 _ 特殊字符中有什么问题
  • 能否请您也解释一下您在那里做了什么?我只知道基本的正则表达式规则,比如分组,什么 * 和 ?表示,从 [] 中选择并用 {min, max} 重复,用 ^ 和 $ 标记字符串的开始/结束,或条件 |。我想了解您在每个组中所做的事情,开头:“?=。*”......这些一起意味着什么?非常感谢!
猜你喜欢
  • 2014-01-24
  • 2017-07-08
  • 1970-01-01
  • 1970-01-01
  • 2021-07-26
  • 1970-01-01
  • 2016-12-17
相关资源
最近更新 更多