JShint Unescaped'^'错误的Javascript匹配正则表达式

chr*_*ris 2 javascript regex jshint

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

我只是使用JShint清理我的代码,并为这段代码抛出一个错误.

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

错误是 Unescaped '^'.

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

Vis*_*ioN 5

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

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

此外,您应该注意不需要使用逗号分隔符号来分隔符号.

您可以在MDN中阅读有关常规语法的更多信息.

  • 实际上,`^`只有当它紧跟在开括号之后才是特殊的.在课堂中间有一个未转义的`^`是可以的. (2认同)
  • `没有必要用集合中的逗号分隔符号.而不是"不需要",更准确的说法语是这样的. (2认同)