使用特殊字符创建regexp

Creating regexp with special characters

本文关键字:regexp 创建 特殊字符      更新时间:2023-09-26

我正在为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)。

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

您可以使用从该答案借用的代码来转义所有可能的regex特殊字符。

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

用反斜杠转义。并在类似的网站上进行测试http://rejex.heroku.com/

/cat'(22/