将变量与RegExp一起使用时获取SyntaxError
Getting a SyntaxError when using a variable with a RegExp
当我的node.js-应用程序中的以下代码被执行时,我得到一个错误:
SyntaxError:无效的正则表达式:/ha/:在Object.store.findSimilarSongs的新RegExp()中没有可重复的内容
app.js片段:
app.get('/search', function (req, res, next) {
store.findSimilarSongs(req.query.search, function (err, songs) {
if (err) {
res.writeHead(500, "An Error occurred");
next(err);
}
else {
res.writeHead(200, {
'Content-Type': 'application/json'
});
res.write(JSON.stringify(songs));
searchQuery=[];
}
res.end();
});
});
我的商店.js:中的函数"findSimilarSounds"
findSimilarSongs: function (query, callback) {
db.music.find({$or:[{'title': new RegExp("*"+query+"*", "i")},{'interpret': new RegExp("*"+query+"*", "i")}]}, callback);
}
我对正则表达式很陌生,尤其是与mongodb/mongoskin结合使用。在出现错误之前,一切都很正常。错误消息中提到的ha正是我在搜索栏中键入的内容。
遗憾的是,除了javascript/jquery、node.js(modules:express、mongoskin)和mongodb之外,我没有其他方法来完成这项任务。
它说"无需重复",因为您构建的正则表达式是/*hal*/
。这肯定是无效的——你不能从重复运算符开始。我猜你要么想要一个模糊匹配:
new RegExp(".*"+query+".*, 'i')
或者一个字面意义上的明星:
new RegExp("''*"+query+"''*", 'i')
相关文章:
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- jquery试图按名称获取按钮位置
- 如何在jQuery中获取元素的形式
- 如何在php文件中获取$.post-ajax传递的值
- 在Shopify中获取博客文章的图片
- 使用Javascript获取所选选项ID
- 在jQuery中获取表的行索引
- 使用jquery将mysql数据获取到新的表行中
- 在动态创建的元素上获取对特定选择器的引用
- 从城市名称获取惊喜
- $http().在传递带有“?”的额外Get参数时获取SyntaxError&”;
- Firefox控制台获取'SyntaxError:非法字符
- 如何迭代数据为谷歌地图创建标记(使用express/jquery/ajax)目前正在获取SyntaxError
- 获取错误SyntaxError:意外的令牌<djangojquery文件上传
- 正在获取org.openqa.selenium.WebDriverException:SyntaxError:缺少;声明
- 调用rest WS并获取:SyntaxError: JSON.解析:JSON数据的第1行第1列数据的意外结束
- 动态添加JQUERY选项卡,获取“Uncaught SyntaxError: Unexpected token ille
- 将变量与RegExp一起使用时获取SyntaxError
- Uncaught SyntaxError -获取在另一个对象中的对象的值
- 将Php-array发送给JavaScript-variable.获取SyntaxError: Unexpected令牌