Mike: regex gesucht editable fehlerhaft wysiwyg

Hallo,

contentEditable="true" erlaubt ja eine wysiwyg-Umgebung zu schaffen.
Leider aber auch eine total zerstörerische. Denn aus vernünftigem HTML wird schlechtes Html.

Beispiel:

Original:
<input name="Zuname" type="text" size="30" maxlength="40">

Wird zu:
<INPUT maxLength=40 size=30 name=Zuname>

Perfekt wäre es wenn man dieses sinnlose Überschreiben abstellen könnte, aber anscheinend gibt es da keine Möglichkeit!?

So suche ich nun nach einem regulären Ausdruck, der solche Veränderungen wieder ins rechte lot bringt.

Also alles nach dem Eröffnungstag "<h <input <form usw..." wieder
in Kleinschreibung bringt und auch die Anführungszeichen bei den
Attributen wieder setzt(wer denkst sich eigentlich aus, dass die weg sollen?). Allerdings dürfen eventuelle Eventhandler nicht betroffen davon sein.

Mike

  1. Man könnte mit [A-Z] -> [a-z] sämtliche Großbuchstaben in Kleinbuchstaben umwandeln. Es gibt aber auch eine allgmeine Funktion dafür str_lower irgendwas...

    Der nächste Schritt wäre dann mittels <([a-z]+) ([a-z]+=[\w]+)*[ ]+[/]?> jedes Tag auszulesen und als <$1 $3="$4" />. So in etwa. Um die zwei Schritte wirst du wohl aber nicht herumkommen.

    Das als Anreiz. Weitermachen kannst du ja selbst ;)

    1. Hallo Rafael,

      Es gibt aber auch eine allgmeine Funktion dafür str_lower irgendwas...

      toLowerCase() gibt es, aber sollte wohl lieber nicht verwendet werden, da JavaScript-Funktionen durchaus Großbuchstaben haben dürfen und diese auch zwingend behalten sollten...

      Mit freundlichem Gruß
      Micha

      1. Es geht hier aber auch um den Teil der HTML-Ausgabe, nicht um den Funktionsnamen.

        1. Hallo Rafael,

          Es geht hier aber auch um den Teil der HTML-Ausgabe, nicht um den Funktionsnamen.

          Muss man diesen Satz verstehen?

          Mir gings um Deine Aussage:

          Man könnte mit [A-Z] -> [a-z] sämtliche Großbuchstaben in Kleinbuchstaben umwandeln.

          sämtliche ist eben falsch!

          Bezogen auf Dein Beispiel, müsste es so aussehen: <$1.toLowerCase() $3.toLowerCase()="$4" />.

          Mit freundlichem Gruß
          Micha