Teniendo en cuenta esta función:JavaScript reemplazar/expresiones regulares
function Repeater(template) {
var repeater = {
markup: template,
replace: function(pattern, value) {
this.markup = this.markup.replace(pattern, value);
}
};
return repeater;
};
¿Cómo hago this.markup.replace()
reemplazar a nivel mundial? Este es el problema. Si lo uso así:
alert(new Repeater("$TEST_ONE $TEST_ONE").replace("$TEST_ONE", "foobar").markup);
El valor de la alerta es "foobar $ TEST_ONE".
Si cambio Repeater
a la siguiente, entonces nada en reemplazados en Chrome:
function Repeater(template) {
var repeater = {
markup: template,
replace: function(pattern, value) {
this.markup = this.markup.replace(new RegExp(pattern, "gm"), value);
}
};
return repeater;
};
... y la alerta se $TEST_ONE $TEST_ONE
.
pero reemplace() recibe la expresión regular como una variable. – core
Corrección secundaria: '$' denota fin de línea en una expresión regular. – harto
@Chris - No creo que marque la diferencia si usas '/ pattern /' o 'nuevo RegExp (" patrón ")'. – harto