Учитывая эту функцию:
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
.