使用RegExp构造函数的可变模式的JavaScript正则表达式

时间:2014-09-26 14:27:48

标签: javascript regex

拥有变量

var str = "asdasd asd 123213 100 Feet";

我可以使用

轻松提取字符串'100 Feet'
str.match(/(\d+) feet/gi);
制造

100 Feet

但是,假设我想在变量中指定关键字“feet”并在我的正则表达式评估中使用它 - 所以我尝试使用如下所示的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); 

但是,由于某种原因,这与字符串不匹配。有人能够对此有所了解吗?

1 个答案:

答案 0 :(得分:4)

这是因为未应用ignore case标志。应该是:

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

RegExp构造函数没有第三个参数,flag参数应该包含不同标记的组合作为简单字符。