javascript无效的正则表达式与令牌' \'

时间:2015-01-19 14:51:48

标签: javascript regex grunt-contrib-connect connect-modrewrite

我创建了以下正则表达式,用于查找与完整路径中的单词匹配且不包含点字符的URL。

(\path\?*)([^.]*)$

它适用于https://www.regex101.com/#javascript,但是当我定义此连接任务时,在连接任务中grunt:

middleware: function(connect, options) {
 var middlewares = [];

 middlewares.push(modRewrite(["(\path\?*)([^.]*)$ /home.html [L]"])); 
    options.base.forEach(function(base) {
      middlewares.push(connect.static(base));
    });
    return middlewares;
  }

我收到此错误:Invalid regular expression: /(home?*)([^.]*)$/: Nothing to repeat并且IDE在'path'字词之间的两个斜杠(\ path \)中警告我。

为什么我可以使用那些斜杠? 我可以用什么来代替那些斜线? 非常感谢

2 个答案:

答案 0 :(得分:2)

\是javascript中的特殊字符,因此如果您打算使用它,则需要将其转义。你可以通过添加另一个\来逃避它。例如:\\

答案 1 :(得分:0)

反斜杠属于“Javascript特殊字符”

因为你在双引号字符串中使用反斜杠,你必须每次写两次以告诉解析器你实际上想要输出一个backslah。 这在双引号和单引号字符串中是必需的。

您可以浏览文档..例如MDN documentation

然后搜索“JavaScript特殊字符”