JSLint抱怨以下内容:
JSLINT:擒纵机构不好。 var r = new RegExp(“^ \ s *”+ s +“\ s * $”,“i”);
有人可以解释擒纵机构有什么问题吗?
答案 0 :(得分:4)
你需要加倍反斜杠。
该表达式中的字符串常量(其值传递给RegExp构造函数的表达式)在正则表达式解析器看到之前被解释为。反斜杠是字符串常量语法中的元字符。因此,如果你不加倍它们(也就是说,如果你不将它们表示为字符串的反斜杠引用部分),则正则表达式解析器根本不会看到它们。
因此,如果“s”是“hello world”,那么您的代码将等同于:
var r = /^s*hello worlds*$/i;
也就是说,正则表达式匹配字母“s”的零个或多个实例,后跟搜索字符串,后跟字符串末尾的零个或多个字母“s”字符。