我正在使用Nodejs和Mongodb。我已经编写了一个API来返回针对搜索属性的文档,我已经设法返回包含搜索条件的所有结果。这是我正在使用的代码
collection.find({ "phone": new RegExp(req.params.phone, 'i') }, function (err, task) {
if (err)
res.send(err);
res.json(task);
});
一切似乎都运行良好但是当我使用以+
开头的字符串进行搜索时,我得到以下异常
Invalid regular expression: /.*+.*/: Nothing to repeat
。
这似乎与我创建regex expression
的内容有关,我对regex
不太满意。
任何帮助将不胜感激
由于
答案 0 :(得分:2)
我认为您需要使用+
(see here)转义\
字符,因为它在正则表达式中使用至少重复一次模式。
.*
表示重复0次或更多次.+
表示重复1次或更多次.*+
休息希望它能解决你当前的问题,同时也注意到你的正则表达式非常松散,甚至可以捕获任何特殊的字符和字符串。空格。