【发布时间】:2012-03-21 16:32:10
【问题描述】:
JSLint 抱怨以下问题:
JSLINT:擒纵机构不良。 var r = new RegExp("^\s*" + s + "\s*$", "i");
谁能解释一下擒纵机构出了什么问题?
【问题讨论】:
标签: javascript jslint
JSLint 抱怨以下问题:
JSLINT:擒纵机构不良。 var r = new RegExp("^\s*" + s + "\s*$", "i");
谁能解释一下擒纵机构出了什么问题?
【问题讨论】:
标签: javascript jslint
您需要将反斜杠加倍。
该表达式中的字符串常量(其值传递给 RegExp 构造函数的表达式)在正则表达式解析器看到它们之前被解释为 。反斜杠是字符串常量语法中的元字符。因此,如果您不将它们加倍(也就是说,如果您不将它们表示为字符串的反斜杠引用部分),则正则表达式解析器将根本看不到它们。
因此,如果“s”是“hello world”,您的代码将相当于:
var r = /^s*hello worlds*$/i;
即匹配零个或多个字母“s”实例的正则表达式,后跟搜索字符串,后跟零个或多个字母“s”字符直到字符串末尾。
【讨论】: