我正在为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);
});
});
Run Code Online (Sandbox Code Playgroud)
但有时标题中有一个括号.这给了我错误:
SyntaxError: Invalid regular expression: /cat(22/: Unterminated group
at new RegExp (unknown source)
Run Code Online (Sandbox Code Playgroud)
正在搜索的标题是cat(22).
使正则表达式接受括号的最简单方法是什么?谢谢.
小智 12
您可以使用从此答案中借用的代码来转义所有可能的正则表达式特殊字符.
new RegExp(req.params.title.replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1"), "i");
Run Code Online (Sandbox Code Playgroud)