【发布时间】:2011-04-15 00:51:03
【问题描述】:
通过 JSLint 运行我的 JavaScript 时,我从同一行代码中得到以下两个错误。
Problem at line 398 character 29: Insecure '.'.
if (password.match(/.[!,@,#,$,%,^,&,*,?,_,~,-,(,)]/))
Problem at line 398 character 41: Unescaped '^'.
if (password.match(/.[!,@,#,$,%,^,&,*,?,_,~,-,(,)]/))
我了解 JSLint 可能“过于谨慎”。我在类似的问题上阅读了 cmets,Purpose of JSLint "disallow insecure in regex" option。
尽管如此,我希望拥有世界上最好的,并拥有一个不会导致 JSLint 抱怨的有效正则表达式。
但我在正则表达式上失败了。
是否有可能制作正则表达式来查找至少一个特殊字符的存在,但不会导致 JSLint 抱怨?
【问题讨论】:
-
与您的问题没有直接关系,但您的角色类中不需要所有这些逗号(并且短划线需要移到开头或结尾)。如果你想让它匹配逗号,它应该是
[,!@#$%^&*?_~()-]。如果不是(如我所料),应该是[!@#$%^&*?_~()-]。 -
这有点不相关,但请不要强迫用户在密码中包含符号。这不是一个好主意。
标签: javascript regex jslint