Dato questa funzione:sostituire JavaScript/regex
function Repeater(template) {
var repeater = {
markup: template,
replace: function(pattern, value) {
this.markup = this.markup.replace(pattern, value);
}
};
return repeater;
};
Come faccio this.markup.replace()
sostituire a livello globale? Ecco il problema Se lo uso così:
alert(new Repeater("$TEST_ONE $TEST_ONE").replace("$TEST_ONE", "foobar").markup);
Il valore del allerta è "foobar $ TEST_ONE".
Se cambio Repeater
a quanto segue, quindi nulla in sostituito in Chrome:
function Repeater(template) {
var repeater = {
markup: template,
replace: function(pattern, value) {
this.markup = this.markup.replace(new RegExp(pattern, "gm"), value);
}
};
return repeater;
};
... e l'avviso è $TEST_ONE $TEST_ONE
.
Ma replace() riceve l'espressione regolare come variabile. – core
Correzione minore - '$' indica fine riga in un'espressione regolare. – harto
@Chris - Non penso che faccia la differenza se usi '/ pattern /' o 'new RegExp (" pattern ")'. – harto