【发布时间】: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