Nach der 6. Ausgabe von JavaScript: The Definitive Guide (Flanagan, 2011):Wann haben alle Browser angefangen, String.replace (regexp, replacement_function) zu unterstützen?
ECMAScript v3 gibt an, dass die Ersatz Argument
replace()
anstelle einer Zeichenfolge eine Funktion sein kann.
Ich schaue auf einen Code geschrieben im Jahr 2005, wo ein complicated workaround wurde verwendet, um Teile einer Zeichenfolge zu ersetzen. Die Kommentare für den Code zeigen deutlich, dass ursprünglich die funktionale replace()
-Methode verwendet wurde, die Problemumgehung jedoch für die browserübergreifende Kompatibilität erforderlich war.
ECMAScript v3 kam 1999 heraus und, soweit ich (von this discussion post und this blog post) sagen kann, ECMAScript v3 wurde in den wichtigsten Browsern unterstützt seit Ende 2001 kann der Autor falsch gewesen, oder jemand beleuchten kann auf Warum könnte ein solcher Workaround im Jahr 2005 notwendig gewesen sein?
...
UPDATE Der eigentliche Kommentar vom Autor des Codes sagt:
Lambda-Funktionen in regexps mit zu vielen Browsern zur Zeit ein Problem sind.
Code geändert, um zu umgehen.
Der Autorcode funktioniert oder läuft this business, obwohl der Code selbst ein persönliches Projekt sein kann.
Oder könnte es sein, dass viele Benutzer noch alte Browser verwenden? – JJJ
Es ist möglich. Das hoffe ich zu beleuchten. – guypursey
Ich denke, Juhana hat wahrscheinlich recht - es hängt alles davon ab, wofür der fragliche Code verwendet wurde. Vielleicht war genug von der beabsichtigten Zielgruppe, veraltete Browser zu betreiben; vielleicht hat sich nur eine Person mit einem veralteten Setup laut genug beschwert. Vielleicht zielte es auf einige Browser, die nicht zu den Desktop-Klassen gehörten, hinter den "Haupt" -Browsern. Etwas schwer zu sagen, ohne den Kontext zu kennen – Flambino