JSLINT:擒纵机构不好

时间:2012-03-21 16:32:10

标签: javascript jslint

JSLint抱怨以下内容:

JSLINT:擒纵机构不好。 var r = new RegExp(“^ \ s *”+ s +“\ s * $”,“i”);

有人可以解释擒纵机构有什么问题吗?

1 个答案:

答案 0 :(得分:4)

你需要加倍反斜杠。

该表达式中的字符串常量(其值传递给RegExp构造函数的表达式)在正则表达式解析器看到之前被解释为。反斜杠是字符串常量语法中的元字符。因此,如果你不加倍它们(也就是说,如果你不将它们表示为字符串的反斜杠引用部分),则正则表达式解析器根本不会看到它们。

因此,如果“s”是“hello world”,那么您的代码将等同于:

var r = /^s*hello worlds*$/i;

也就是说,正则表达式匹配字母“s”的零个或多个实例,后跟搜索字符串,后跟字符串末尾的零个或多个字母“s”字符。