【问题标题】:Regex password validation needs just one more adjustment正则表达式密码验证只需要再调整一次
【发布时间】:2013-05-22 16:18:18
【问题描述】:

我有一个接近我需要的表达式,只是缺少我的“无相邻数字”规则

^.(.).\1.*$

abcdef1 是允许的 允许 abcdef1g2 不允许使用 abcdef12(但我当前的表达式允许这样做)

密码规则为:

不能有相邻的数字 密码中的任何地方都不能重复相同的数字 密码中没有重复字符

[编辑]我不确定它使用的是什么语言 - 我可以告诉你我正在使用看起来像 JavaScript (http://gskinner.com/RegExr/) 的东西来测试它。我在用于单点登录的 Windows 应用程序(Tools4Ever - E-SSOM)中使用它

【问题讨论】:

  • 请指定语言。正则表达式实现在不同语言之间存在很大差异,并且并非所有语言都支持“向前/向后”。
  • 更好的问题可能是你为什么不允许这些?开发人员有时会以牺牲高质量的用户体验为代价过度保护他们的用户,这绝对是这种情况。看看大多数主要的实现,你不会发现任何几乎如此严格的东西。字母和数字的组合以及最小长度和每 n 天所需的重置应该足以满足几乎所有实现。
  • 我同意这种复杂性是荒谬的,但它适用于已经存在这种复杂性的客户,所以我们只是试图在单点登录应用程序中反映它 - 谢谢

标签: regex passwords


【解决方案1】:

您可以确认这匹配:

\d\d|(.).*(\1)

不过,不使用正则表达式进行此验证可能会更好/更容易,因为检查唯一字符列表非常容易。我的理念也是,您不应该限制用户想要的密码。

【讨论】:

    猜你喜欢
    • 2015-04-24
    • 2011-05-06
    • 2016-10-19
    • 2011-03-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多