4

我有这样的查找语句

collSession.find({"Venue.type": /.*MT.*/}).toArray(function (err, _clsSession)
        {
            console.log(_clsSession);
        });

它给出了答案。但我需要一些变量值而不是那个硬编码值 MT。如何做到这一点?谢谢。

更新我试过像 " /."+searchterm+"./ " 它不工作。

4

5 回答 5

5

除了使用内联语法创建正则表达式,您还可以使用RegExp对象创建基于字符串的正则表达式

var searchPhrase = "MT";
var regularExpression = new RegExp(".*" + searchPhrase + ".*");
collSession.find({"Venue.type": regularExpression}) [...]
于 2013-04-25T12:48:41.493 回答
3

替换/.*MT.*/new RegExp( ".*" + variable + ".*" )

于 2013-04-25T12:49:57.200 回答
1

尝试这个:

  var pattern = 'concatenate string' + here,
        regexp = new Regexp(pattern);
于 2013-04-25T12:49:07.663 回答
0

最后我从这里得到

它是“Venue.type”:新 RegExp(queryParams.et)

于 2013-04-25T12:48:58.943 回答
0

看看这段代码:(我用的是猫鼬)

exports.getSearchPosts = (req, res, next) => {
const keyword = req.body.keyword;
Post.find({ postTitle: new RegExp( ".*" + keyword + ".*" ) }).then(posts => {
    res.render('post/search', {
        pageTitle: 'Search result for: ' + keyword,
        posts: posts,
        category: postCategory,
        posts: catPost,
    });
 }).catch(err => console.log(err));
}

我想你会发现它很有帮助

于 2019-07-19T11:23:01.753 回答