I'm creating a query for 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);
});
});
But sometimes the title has a parenthese in it. This gives me the error:
SyntaxError: Invalid regular expression: /cat(22/: Unterminated group
at new RegExp (unknown source)
The title that is being searched for is cat(22).
What's the easiest way to make the regex accept parenthesis? Thanks.
You can escape all possible regex special characters with code borrowed from this answer.
new RegExp(req.params.title.replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1"), "i");
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With