当通过JSLint运行我的JavaScript时,我从同一行代码中得到以下两个错误。有没有办法让JSLint满意这个正则表达式?
Problem at line 398 character 29: Insecure '.'.
if (password.match(/.[!,@,#,$,%,^,&,*,?,_,~,-,(,)]/))
Problem at line 398 character 41: Unescaped '^'.
if (password.match(/.[!,@,#,$,%,^,&,*,?,_,~,-,(,)]/))
我知道JSLint可能会“过于谨慎”。我阅读了关于类似问题的评论,Purpose of JSLint "disallow insecure in regex" option。
尽管如此,我想拥有最好的世界,并有一个正常工作的表达式,也不会导致JSLint抱怨。
但我在正则表达式失败。
是否有可能使正则表达式查找至少存在一个特殊字符,但不会导致JSLint抱怨?
与您的问题没有直接关系,但您不需要在角色类中使用所有这些逗号(并且需要将短划线移至开头或结尾)。如果你想匹配逗号,它应该是'[,!@#$%^&*?_〜() - ]'。如果没有(正如我所期望的那样),它应该是'[!@#$%^&*?_〜() - ]'。 – 2010-09-21 06:07:20
这是不相关的,但请不要强制用户在他们的密码中包含符号。这不是一个好主意。 – 12Me21 2017-05-26 05:15:09