【问题标题】:RegEx to Validate Password (1 Lowercase, 1Uppercase, 1 Digit, NoSpaces)用于验证密码的正则表达式(1 个小写字母、1 个大写字母、1 个数字、NoSpaces)
【发布时间】:2012-09-28 15:23:45
【问题描述】:

我正在尝试创建一个 RegExpression 以满足以下条件;

  • 至少1个小写
  • 至少 1 个大写字母
  • 至少一位数
  • 没有空格
  • 最少 8 个字符
  • 无特殊字符

到目前为止,我得到了这个;

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

但是我无法让它工作。 任何帮助将不胜感激。 我从来不擅长拼图:)

【问题讨论】:

    标签: regex passwords character


    【解决方案1】:

    你快到了;只是最后的.* 忽略了您的“无空格/特殊字符”规则,而(?=.\s) 前瞻是错误的(您可能是指(?!.*\s)(?=\S*$))。

    但无论如何您都不需要先行,因为您可以简单地指定允许哪些字符(并在那里强制执行“最少 8 个字符”规则):

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

    但是为什么要阻止用户在密码中使用非字母数字字符呢?

    【讨论】:

    • @user1595357:那是 C# 吗?在这种情况下,这是首选语法,因为它允许您使用反斜杠而不必转义它们。
    • 为什么?该密码对这个表达式有效吗?
    • 我明白了,你的措辞不太准确@user1595357
    • @TimPietzcker 我在你的回答中加了一点,问题的措辞让我很困惑,但你的回答很有效。
    • @TimPietzcker 密码正在 ActiveDirectory 中设置,AD 中的 PasswordPolicy 属性不允许使用特殊字符。感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 2012-11-10
    • 1970-01-01
    • 1970-01-01
    • 2016-09-09
    • 2012-03-17
    • 2013-01-28
    相关资源
    最近更新 更多