具有变量
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
参数应由不同标志的组合组成,如简单字符。