“我该怎么做?”;“无组织化”;使用javascript的数组中的值?

“我该怎么做?”;“无组织化”;使用javascript的数组中的值?,javascript,Javascript,我正在为Mongo数据库构建一个动态搜索查询 简言之,与问题没有直接关系。。。看起来是这样的: var searchCriteria = {}; <-- start with empty object return db.users.find(searchCriteria, { sort: { username: 1 } }); var filter = $(form).find('select[name=filter]').val(); var query = $(f

我正在为Mongo数据库构建一个动态搜索查询

简言之,与问题没有直接关系。。。看起来是这样的:

var searchCriteria = {}; <-- start with empty object    

return db.users.find(searchCriteria,
    { sort: { username: 1 }
});
var filter = $(form).find('select[name=filter]').val();
var query = $(form).find('[name=query]').val();

searchCriteria[filter] = query <-- Using a dynamic key
这是我的问题。我需要在searchCriteria中“解除”查询,并将其转换为:

>> { username: /jdoe/ }
除其他外,我尝试过替换,但它总是以字符串值结束。对于Mongo find查询,我需要该格式的/query/


有什么建议吗?谢谢:)

您可以使用
新的正则表达式(string)
轻松地将字符串转换为正则表达式对象

请注意,如果您正在传递用户输入,这肯定会在某些地方出现一些安全问题,但是
new RegExp
不应允许任何任意JS运行,但它仍然可能因为是无效的Regex而使代码崩溃


嗯?你想把字符串转换成正则表达式吗?如果是,只需
newregexp(字符串)仅供参考
{}
是一个空对象,而不是空数组。
var searchCriteria={}
不是数组,它是一个ObjectThank,已编辑的问题。您需要它的原因是什么?如果我们知道你想用它做什么,也许还有其他可能解决这个问题的方法:)也许有人应该提到一些关于逃逸特殊字符和清理用户输入的内容。@dandavis很好。在我的情况下,它是站点上受保护的管理员页面。@dandavis Hah。我也是:)
>> { username: /jdoe/ }