Ihre Frage wird hier beantwortet: stackoverflow.com/questions/494035/…
– Eric Wendelin
12. Februar 2009 um 16:58 Uhr
Paolo Bergantino
var mystring = "hello world test world";
var find = "world";
var regex = new RegExp(find, "g");
alert(mystring.replace(regex, "yay")); // alerts "hello yay test yay"
Sie hätten es einfacher machen können: alert(mystring.replace(new RegExp(“world”, “g”), “yay”))
– Farbcodierung
4. Mai 2018 um 16:41 Uhr
Bobine
Für Regex, new RegExp(stringtofind, 'g');. ABER. Wenn „find“ Sonderzeichen in Regex enthält, haben sie ihre Regexy-Bedeutung. Wenn Sie also versucht haben, das ‘.’ in ‘abc.def’ mit ‘x’ erhalten Sie ‘xxxxxxx’ — hoppla.
Wenn Sie nur eine einfache Zeichenkette ersetzen möchten, brauchen Sie keine regulären Ausdrücke! Hier ist das einfache String-Replace-Idiom:
+1 immer gut zu sehen, dass Leute über die wörtliche Antwort auf die Frage hinausdenken.
– Thomas
13. Februar 2009 um 4:40 Uhr
Ich frage mich, wie sich dies bei größeren Zeichenfolgen im Vergleich zum Aufruf von RegExp() verschlechtert.
– Kat
25. Oktober 2011 um 22:24 Uhr
@Kato Ich war auch neugierig, also habe ich einen jsperf-Leistungstest erstellt, um es herauszufinden. Verknüpfung: goo.gl/cbZiV
– Starbeamrainbowlabs
27. Januar 2013 um 17:48 Uhr
Überprüfen Sie einfach Firefox, und Regex ist am schnellsten. (Ich habe vorher Chrom verwendet)
– Starbeamrainbowlabs
27. Januar 2013 um 17:59 Uhr
@starbeamrainbowlabs sehr interessante Ergebnisse! Guter alter Internet Explorer; immer unvorhersehbar schlecht zufällige, scheinbar wichtige Dinge 🙂
– Kat
27. Januar 2013 um 18:28 Uhr
Reguläre Ausdrücke sind viel langsamer als die Zeichenfolgensuche. Daher ist das Erstellen von Regex mit maskiertem Suchstring kein optimaler Weg. Selbst das Schleifen der Zeichenfolge wäre schneller, aber ich schlage vor, integrierte vorkompilierte Methoden zu verwenden.
Hier ist eine schnelle und saubere Methode zum schnellen Ersetzen globaler Zeichenfolgen:
sMyString.split(sSearch).join(sReplace);
Und das ist es.
unigogo
String.prototype.replaceAll = function (replaceThis, withThis) {
var re = new RegExp(RegExp.quote(replaceThis),"g");
return this.replace(re, withThis);
};
RegExp.quote = function(str) {
return str.replace(/([.?*+^$[\]\\(){}-])/g, "\\$1");
};
var aa = "qwerr.erer".replaceAll(".","A");
alert(aa);
silmiar post
dSd
Sie können die folgende Lösung verwenden, um eine globale Ersetzung für eine Zeichenfolge mit einer Variablen in „https://stackoverflow.com/“ und „/g“ durchzuführen:
Ihre Frage wird hier beantwortet: stackoverflow.com/questions/494035/…
– Eric Wendelin
12. Februar 2009 um 16:58 Uhr