【问题标题】:Javascript RegExp passwd validationJavascript RegEx 密码验证
【发布时间】:2012-09-15 00:12:09
【问题描述】:

我有想要验证的密码限制:

  • 最小长度 = 6
  • 允许使用大写和小写字符
  • 至少 1 个字符(大写或小写)
  • 至少 1 位数字
  • 允许的特殊字符:_$#%&!?-.

目前我的正则表达式如下所示:

/^(?=.*\d+)(?=.*[a-zA-Z])[0-9a-zA-Z\_\$\#\%\&!\?\-\.]{6,}$/

除特殊字符外,均满足要求。任何人都可以向我解释我对特殊字符做错了什么吗?如您所见,每个字符都被转义并分组到“允许的”字符类中。但是,测试仍然失败。

谢谢

【问题讨论】:

  • 你能给我们一个失败的测试例子吗?正则表达式对我来说看起来不错。
  • 当然,使用以下密码测试在我的应用程序中失败:asdfgH12&
  • 正则表达式没问题(但可以简化为/^(?=.*\d)(?=.*[a-z])[\w$#%&!?.-]{6,}$/i)。问题一定出在其他地方。你是如何使用正则表达式的?
  • 感谢您的修改蒂姆!我正在使用正则表达式来验证 Sencha Touch 2.0 模型(它使用以下实现:developer.mozilla.org/en/JavaScript/Reference/Global_Objects/…
  • 我很困惑。那个密码有什么问题?长度超过 6 个字符,至少有一个字符,至少有一个数字,并且它的特殊字符是有效的。它应该返回true!

标签: javascript regex


【解决方案1】:
/^(?=.{6})(?=.*[a-zA-Z])(?=.*\d)[\w$#%&!?.-]+$/

/^(?=.{6})(?=.*[a-z])(?=.*\d)[\w$#%&!?.-]+$/i

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-14
    • 2013-12-09
    • 2013-04-14
    • 1970-01-01
    • 2020-05-17
    • 1970-01-01
    相关资源
    最近更新 更多