簡體   English   中英

如何將變量傳遞給正則表達式

[英]how to pass a variable to a regex

我有一個這樣的 find 語句

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

它給出了答案。但我需要一些變量值而不是那個硬編碼值 MT。 如何實現這一目標? 謝謝。

更新我試過像“ /。”+searchterm+“。/ ”它不工作。

除了使用內聯語法創建正則表達式之外,您還可以使用RegExp對象創建一個基於字符串的正則表達式

var searchPhrase = "MT";
var regularExpression = new RegExp(".*" + searchPhrase + ".*");
collSession.find({"Venue.type": regularExpression}) [...]

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

嘗試這個:

  var pattern = 'concatenate string' + here,
        regexp = new Regexp(pattern);

最后我從這里得到

它是 "Venue.type": new RegExp(queryParams.et)

看看這段代碼:(我用的是貓鼬)

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));
}

我想你會發現它很有幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM