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

2024-05-08

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

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


您可以使用以下命令转义所有可能的正则表达式特殊字符从这个答案借用的代码 https://stackoverflow.com/a/2593661/1106925.

new RegExp(req.params.title.replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1"), "i");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用特殊字符创建正则表达式 的相关文章

随机推荐