Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用特殊字符创建regexp_Javascript_Regex - Fatal编程技术网

Javascript 使用特殊字符创建regexp

Javascript 使用特殊字符创建regexp,javascript,regex,Javascript,Regex,我正在为mongodb创建一个查询: app.get('content/:title', function(req, res) { var regexp = new RegExp(req.params.title, 'i'); db.find({ "title": regexp, }).toArray(function(err, array) { res.send(array); }); }); 但有时标题中有一个括号。这给了我一个错误: SyntaxErro

我正在为mongodb创建一个查询:

app.get('content/:title',
function(req, res) {
  var regexp = new RegExp(req.params.title, 'i');

  db.find({
    "title": regexp,
  }).toArray(function(err, array) {
    res.send(array);
  });
});
但有时标题中有一个括号。这给了我一个错误:

SyntaxError: Invalid regular expression: /cat(22/: Unterminated group
    at new RegExp (unknown source)
正在搜索的标题是cat(22)


让正则表达式接受括号的最简单方法是什么?谢谢。

您可以使用转义所有可能的正则表达式特殊字符


用反斜杠来逃避它。并在类似的网站上进行测试


您需要对模式中的括号进行转义:即,
应该是
\(
,否则正则表达式引擎会认为它是一个开放的组字符。有许多特殊字符需要转义:例如,一个快速的Google查找…。另请参见:我编辑了正则表达式以包含
字符,这意味着正则表达式体中的并集。任何使用该版本而没有
mi的人ght有细微的错误。@WayneConrad:如果你的意思是
escape(…)
,那就不一样了。
new RegExp(req.params.title.replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1"), "i");
/cat\(22/