给定字符串input_value=
<div href="asdf"></div>
<div href="1234"></div>
替换模式
var res = input_value.replace(/.+href="(\w+)".+/gm, "$1");
console.log(res) //=>asdf 1234
按预期工作
但是,当我使用运算符声明 RegExp 对象时new
(据我所知,这是为正则表达式提供动态元素的唯一方法),正则表达式失败并且我得到了返回的整个 input_value:
var attribute = "href";
var re = new RegExp(".+" + attribute + "=\"(\w+)\".+", "gm");
var res = input_value.replace(re, "$1");
console.log(res) //=> <div href="asdf"></div>
//=> <div href="1234"></div>
这两者的运作方式有什么不同?