使用特殊字符创建正则表达式

时间:2012-01-16 16:00:20

标签: 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);
  });
});

但有时标题中有一个括号。这给了我错误:

SyntaxError: Invalid regular expression: /cat(22/: Unterminated group
    at new RegExp (unknown source)

正在搜索的标题是cat(22)。

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

2 个答案:

答案 0 :(得分:10)

您可以使用code borrowed from this answer转义所有可能的正则表达式特殊字符。

new RegExp(req.params.title.replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1"), "i");

答案 1 :(得分:1)

用反斜杠逃脱它。并在http://rejex.heroku.com/

等网站上进行测试
/cat\(22/
相关问题