我如何" unstringify"使用javascript的数组中的值?

时间:2014-10-07 18:06:53

标签: javascript

我正在为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 /。

有什么建议吗?谢谢:))

1 个答案:

答案 0 :(得分:1)

您可以使用new Regex(string)轻松将字符串转换为RegExp对象。

请注意,如果您传入用户输入,这肯定会出现一些安全问题,但new RegExp不应该允许任意JS运行,但它仍然可能会导致代码崩溃作为一个无效的正则表达式。

Source (MDN)