Compte tenu de cette fonction:remplacer JavaScript/regex
function Repeater(template) {
var repeater = {
markup: template,
replace: function(pattern, value) {
this.markup = this.markup.replace(pattern, value);
}
};
return repeater;
};
Comment puis-je faire this.markup.replace()
globalement remplacer? Voici le problème. Si je l'utilise comme ceci:
alert(new Repeater("$TEST_ONE $TEST_ONE").replace("$TEST_ONE", "foobar").markup);
La valeur de l'alerte est "foobar $ TEST_ONE".
Si je change Repeater
à ce qui suit, alors rien dans remplacé dans Chrome:
function Repeater(template) {
var repeater = {
markup: template,
replace: function(pattern, value) {
this.markup = this.markup.replace(new RegExp(pattern, "gm"), value);
}
};
return repeater;
};
... et l'alerte est $TEST_ONE $TEST_ONE
.
Mais remplacer() Reçoit la regex comme variable. – core
Correction mineure - '$' indique une fin de ligne dans une expression rationnelle. – harto
@Chris - Je ne pense pas que cela fasse une différence si vous utilisez '/ pattern /' ou 'new RegExp (" pattern ")'. – harto