Erstes Argument in replace() Funktion per "Variable" übergeben
bearbeitet von
Lieber VB1988 - wie wär's denn mal mit selber nachlesen und Hirn einschalten. Sorry, bin von deinem "Noch eine Antwort bitte" etwas genervt, ich lese zwischen den Worten die Ausage "ich bin zu faul, mir den Inhalt der gegebenen Antwort selbst zu erschließen und bringe es nicht mal fertig, mich auf die Antwort so weit einzulassen dass ich klare Rückfragen stellen kann".
/a/g ist das, was Du brauchst - eine RegExp mit Global-Flag. Diese RegExp ist ein Objekt, das JavaScript beim Laden deines Scripts automatisch erzeugt.
Wenn Du das nicht automatisch willst, hast Du die RegExp Konstruktorfunktion zur Verfügung.
~~~
var rx = new RegExp(muster, flags)
~~~
erzeugt Dir ebenfalls ein RegExp Objekt, aber diesmal ist das Muster nicht in deinem Quellcode als Konstante, sondern du kannst Muster und Flags getrennt als String übergeben.
~~~
new RegExp("a", "g")
~~~
erzeugt das, was Du brauchst. Das musst Du dann als ersten Parameter an replace übergeben.
Rolf
Erstes Argument in replace() Funktion per "Variable" übergeben
bearbeitet von
Bin gerade komplett geplättet, dass String.prototype.replace nur den ersten Treffer ersetzt, wenn man als ersten Parameter keine Regex angibt. In AGB würde ich das als unwirksame überraschende Klausel verurteilen...
Also:
- s2.replace("a", "o") wandelt Hahaha in Hohaha - aber nur in JavaScript. str_replace in PHP oder String.replace in C# machen ein Hahaha draus.
- s2.replace(/a/, "o") macht das gleiche
- s2.replace(/a/g, "o") täte das gewünschte, aber das RegExp Literal ist nicht das, was der OP will.
- s2.replace(new RegExp("a", "g"), "o") erzeugt die RegExp /a/g dynamisch und ersetzt alles.
Rolf