diese Funktion Gegeben:JavaScript ersetzen/regex
function Repeater(template) {
var repeater = {
markup: template,
replace: function(pattern, value) {
this.markup = this.markup.replace(pattern, value);
}
};
return repeater;
};
Wie kann ich this.markup.replace()
global ersetzen machen? Hier ist das Problem. Wenn ich es so verwende:
alert(new Repeater("$TEST_ONE $TEST_ONE").replace("$TEST_ONE", "foobar").markup);
Der Wert der Warnung ist "Foobar $ TEST_ONE".
Wenn ich Repeater
der folgenden ändern, dann nichts in Chrome ersetzt:
function Repeater(template) {
var repeater = {
markup: template,
replace: function(pattern, value) {
this.markup = this.markup.replace(new RegExp(pattern, "gm"), value);
}
};
return repeater;
};
... und die Warnung ist $TEST_ONE $TEST_ONE
.
Aber replace() erhält die Regex als Variable. – core
Geringfügige Korrektur - '$ 'bezeichnet das Ende der Zeile in einem regulären Ausdruck. – harto
@Chris - Ich denke nicht, dass es einen Unterschied macht, wenn Sie '/ pattern /' oder 'new RegExp (" pattern ")' verwenden. – harto