Dies ist die schnellste Version, die verwendet keine regulären Ausdrücke .
Überarbeitet jsperf
replaceAll = function(string, omit, place, prevstring) {
if (prevstring && string === prevstring)
return string;
prevstring = string.replace(omit, place);
return replaceAll(prevstring, omit, place, string)
}
Es ist fast dos veces so schnell wie die Split-and-Join-Methode.
Wie bereits in einem Kommentar erwähnt, funktioniert dies nicht, wenn Ihr omit
Variable enthält place
, wie in: replaceAll("string", "s", "ss")
denn es wird immer in der Lage sein, ein anderes Vorkommen des Wortes zu ersetzen.
Es gibt einen anderen jsperf mit Varianten meines rekursiven replace, die noch schneller sind ( http://jsperf.com/replace-all-vs-split-join/12 )!
- Update 27. Juli 2017: Es sieht so aus, als hätte RegExp jetzt die schnellste Leistung im kürzlich veröffentlichten Chrome 59.