【发布时间】:2014-07-11 02:32:44
【问题描述】:
在机车应用程序中,在查询我的模型的搜索引擎中(由于通常的原因,我不会在这里介绍相当具体的元数据)我需要包含一个正则表达式引擎来检查关键字字段。
我的做法如下:
this.keywords = strings.makeSafe(this.param("keywords")).toLowerCase();
console.log(this.keywords);
if(strings.exists(this.keywords)) {
keywords = this.keywords.split(", ");
var len = keywords.length - 1;
do {
query.regex("/" + this.keywords[len] + "/ig", "keywords");
} while(len--);
}
(这是 this.keywords 以便我可以在需要时将其传递给视图)。
但是,我不匹配我知道在集合中的文档中可用的数据
strings.makesafe 调用只是这样做:
strings.makeSafe = function(str) {
str = String(str);
var re = /\$/gi;
str = str.replace(re, "U+FF04");
re = /\./gi;
return str.replace(re, "U+FF08");
};
并且是试图通过“.”来处理 mongoose 的代码注入漏洞。和“$”字符。它已经过测试,不应成为问题的根源。
我现在认为这与正则表达式或调用方法的结构有关。这是在 mongoose 中搜索逗号分隔的关键字列表的正确语法吗?
【问题讨论】:
标签: javascript regex node.js mongodb mongoose