【问题标题】:JSLINT: Bad escapementJSLINT:擒纵机构不良
【发布时间】:2012-03-21 16:32:10
【问题描述】:

JSLint 抱怨以下问题:

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

谁能解释一下擒纵机构出了什么问题?

【问题讨论】:

    标签: javascript jslint


    【解决方案1】:

    您需要将反斜杠加倍。

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

    因此,如果“s”是“hello world”,您的代码将相当于:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-08
      • 1970-01-01
      • 2019-04-27
      • 2011-05-04
      • 2015-03-17
      • 2011-06-01
      • 1970-01-01
      • 2012-09-22
      相关资源
      最近更新 更多