我正在尝试根据用户输入构建一个javascript正则表达式:
function FindString(input) {
var reg = new RegExp('' + input + '');
// [snip] perform search
}
但是当用户输入包含一个?或*因为它们被解释为正则表达式特殊时,正则表达式将无法正常工作.实际上,如果用户将不平衡(或[字符串放入其中,则正则表达式甚至无效.
什么是正确转义所有特殊字符以在正则表达式中使用的javascript函数?
当我使用mongoose进行查询时,我遇到了问题.I编码遵循此Mongoose.js:按用户名LIKE值查找用户.但它返回空白.
我的代码返回空白.
var promise = UserSchema.find({name: /req.params.keyword/ }).limit(5);
Run Code Online (Sandbox Code Playgroud)
我试过这个回归空白似乎.
var n = john; var promise = UserSchema.find({name: /n/ }).limit(5);
但我试过这是有效的
var promise = UserSchema.find({name: /john/ }).limit(5);
Run Code Online (Sandbox Code Playgroud)
为什么我使用变量然后返回空白?
在Mongoose doc中,我找不到MongoDb $ regex的等价物.你能提供一个find()带有正则表达式的简单Mongoose 吗?