2017-03-08 158 views
0

我使用这个代码不区分大小写的搜索:逃生斜线

Effect.find({name: new RegExp('^'+name+'$', "i")}).lean().exec(function(err, effect){ 
    if(err) return callback(err, null); 
    callback(null, effect); 
}); 

在它看起来像它工作正常第一次看。

问题:

我有一个名为test A/c的效果。

当我搜索数据库中的确切区分大小写的比赛,我得到wiered结果:

案例:1当我搜索test A/,我得找到匹配。

案例:2也为test A/c,我得到一个匹配找到。

哪一个不适合第一种情况。我知道这是我的正则表达式的问题。但我对Regex来说还是比较新的。

回答

-1

终于找到了错误。 new RegExp()功能不需要转义backslash。我的错误是,我从url发送了这个值,因此在斜线之后它被作为新参数计数。