【发布时间】:2010-11-12 20:21:46
【问题描述】:
给定这个函数:
function Repeater(template) {
var repeater = {
markup: template,
replace: function(pattern, value) {
this.markup = this.markup.replace(pattern, value);
}
};
return repeater;
};
如何使this.markup.replace() 全局替换?这就是问题所在。如果我这样使用它:
alert(new Repeater("$TEST_ONE $TEST_ONE").replace("$TEST_ONE", "foobar").markup);
警报的值为“foobar $TEST_ONE”。
如果我将 Repeater 更改为以下内容,那么 Chrome 中将不会替换任何内容:
function Repeater(template) {
var repeater = {
markup: template,
replace: function(pattern, value) {
this.markup = this.markup.replace(new RegExp(pattern, "gm"), value);
}
};
return repeater;
};
...警报是$TEST_ONE $TEST_ONE。
【问题讨论】:
标签: javascript regex replace