拥有变量
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);
但是,由于某种原因,这与字符串不匹配。有人能够对此有所了解吗?
答案 0 :(得分:4)
这是因为未应用ignore case
标志。应该是:
var regex = new RegExp(pattern, 'gi');
RegExp
构造函数没有第三个参数,flag
参数应该包含不同标记的组合作为简单字符。