簡體   English   中英

使用RegExp構造函數的具有可變模式的JavaScript正則表達式

[英]JavaScript regex with variable pattern using RegExp constructor

具有變量

var str = "asdasd asd 123213 100 Feet";

我可以輕松地使用提取字符串“ 100 Feet”

str.match(/(\d+) feet/gi);

生產:

100 Feet

但是,假設我想在變量中指定關鍵字“ feet”,並在我的regex評估中使用它-因此,我嘗試使用RegExp構造函數,如下所示:

var keyWord = 'feet';
var pattern = '(\\d+) ' + keyWord;     
//pattern evaluates into '(\d+) feet', seemingly equivalent to the pattern shown above

var regex = new RegExp(pattern, 'g', 'i');
var result = str.match(regex); 

但是,由於某種原因,該字符串與字符串不匹配。 任何人都可以對此有所了解嗎?

發生這種情況是因為未應用ignore case標志。 應該:

var regex = new RegExp(pattern, 'gi');

RegExp構造函數沒有第三個參數, flag參數應由不同標志的組合組成,如簡單字符。

暫無
暫無

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

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