我正在为Mongo数据库构建动态搜索查询。
简而言之,与问题没有直接关系......看起来像这样:
var searchCriteria = {}; <-- start with empty object
return db.users.find(searchCriteria,
{ sort: { username: 1 }
});
searchCriteria的值来自搜索表单,基本上是这样的:
var filter = $(form).find('select[name=filter]').val();
var query = $(form).find('[name=query]').val();
searchCriteria[filter] = query <-- Using a dynamic key
表单输出示例:
console.log(searchCriteria);
>> { username: "jdoe" }
所以这是我的挂断。我需要&#34; unstringify&#34; searchCriteria中的查询,并将其转换为:
>> { username: /jdoe/ }
我已经尝试过替换等等,但它最终会以字符串值结束。我需要以Mongo查找查询格式的/ query /。
有什么建议吗?谢谢:))
答案 0 :(得分:1)
您可以使用new Regex(string)
轻松将字符串转换为RegExp对象。
请注意,如果您传入用户输入,这肯定会出现一些安全问题,但new RegExp
不应该允许任意JS运行,但它仍然可能会导致代码崩溃作为一个无效的正则表达式。