2

可能重复:
有没有办法让 JSLint 对这个正则表达式感到满意?

我只是在使用 JSHint 清理我的代码,并且它为这段代码抛出了一个错误。

if (password.match(/.[!,@,#,$,%,^,&,*,?,_,~,-,£,(,)]/)) { 
       score++;
    }

错误是Unescaped '^'.

基本上我想为更复杂的密码提供更多积分?

4

1 回答 1

5

在正则表达式中,^字符表示NOT,因此出于某种原因(可能是为了安全起见)JSHint 要求您对其进行转义(破折号也是如此-):

/[!@#$%\^&*?_~\-£(),.]/

另外您应该注意,在集合中不需要用逗号分隔符号。

您可以在MDN中阅读有关正则语法的更多信息。

于 2013-01-17T14:50:25.460 回答