[英]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.