Andreas Dölling: RegExp: Merkwürdiges Verhalten des IE bei replace

Beitrag lesen

Hallo,

ich habe folgendes Problem: ich möchte den Inhalt eines HTML-Container-Elements auslesen und per POST-Formular zur Weiterverarbeitung versenden.
Den HTML-Inhalt hole ich mir mit containerElement.innerHTML();

Im Mozilla/Firefox ist das überhaupt kein Problem, der IE dagegen liefert als innerHTML nicht valides HTML, d.h. die Elementnamen sind plötzlich Großbuchstaben und die Standardattribut-Werte sind nicht mehr in Anführungszeichen eingeschlossen, also z.B.: <P class=test>

Nun gibt es ja zum Glück reguläre Ausdrücke, dachte ich mir und wollte daher im ersten Schritt die Elementnamen wieder in kleingeschriebene Strings verwandeln:
ieValue = ieValue.replace(/<([A-Z]+)([^>]*?)>/ig, "$1".toLowerCase());

Der Ausdruck ist nicht sonderlich komplex und matcht auch.
Allerdings weigert sich der IE, die gefundenen Elementnamen durch die kleingeschriebene Version ("$1".toLowerCase()) zu ersetzen.

Testweise habe ich es einmal mit dem Ausdruck:
Hallo,

ich habe folgendes Problem: ich möchte den Inhalt eines HTML-Container-Elements auslesen und per POST-Formular zur Weiterverarbeitung versenden.
Den HTML-Inhalt hole ich mir mit containerElement.innerHTML();

Im Mozilla/Firefox ist das überhaupt kein Problem, der IE dagegen liefert als innerHTML nicht valides HTML, d.h. die Elementnamen sind plötzlich Großbuchstaben und die Standardattribut-Werte sind nicht mehr in Anführungszeichen eingeschlossen, also z.B.: <P class=test>

Nun gibt es ja zum Glück reguläre Ausdrücke, dachte ich mir und wollte daher im ersten Schritt die Elementnamen wieder in kleingeschriebene Strings verwandeln:
ieValue = ieValue.replace(/<([A-Z]+)([^>]*?)>/ig, "XxX$1yYy".toLowerCase());
versucht.

Dieser Ausdruck liefert als Ergebnis zum Beispiel: xxxPyyy bei <P class=test>.
D.h. das toLowerCase() an sich greift - nur wird eben der Match $1 nicht konvertiert.

Lange Rede, kurzer Sinn: kennt jemand von Euch dieses Verhalten? Ist das IE-spezifisch? Oder ein neuer Bug? Der Dölling-Bug? Noch besser wäre es, wenn Ihr eine Lösung für mich hättet oder Lösungsvorschläge!

Thanx und ciao,
Andreas