Hi,
@ChrisB - ich bin bis heut' im traum nicht auf den gedanken gekommen,
funktionierendes capture verhalten von RegX-en bei [split] auch nur
zu unterstellen - nie versucht
Ich schon [1] - bei DOM-Manipulationen "per" innerHTML.
Ich wollte sämtlichen Textinhalt bearbeiten, und benötigte während der Bearbeitung eines Textknotens auch noch lesenden Zugriff auf den jeweils vorhergehenden/nachfolgenden - extrem aufwendig, und auch nicht sonderlich performant, wenn man das wirklich rekursiv per DOM-Methoden machen will.
Also innerHTML eines Elements hernehmen, an allem was nach Tag aussieht (also basically <[^>]+> resp. </[^>]+>) splitten, dann durchlaufen und "Texknoten" (alles, was nicht leer ist und nicht mit < beginnt) bearbeiten, und anschliessend Array wieder joinen.
- gleich ausprobiert - *funzt* in firefox und chrome - aber ...
... Nur der IE ist immer noch zu blöd dazu.
Na was glaubst du, wie ich geschaut habe, als das Script während der Entwicklung im Firefox tat, was ich wollte - und dann beim anschliessenden Test im IE sämtliche Tags flöten gegangen sind ...
Wie gesagt, eine Umschreibung auf Nutzung von String.match tat's dann auch, da musste ich dann nur noch dafür sorgen, dass alles was kein "Tag" ist, an dem ich sonst gesplittet hätte, ebenfalls noch gecaptured wurde.
wollt' ich auch gleich mal selber haben - hier mein erster wurf einer generischen loesung
Schau ich mir bei Gelegenheit mal an;
Aber wie schon geschrieben, man findet auch schon "fertige" Lösungsvorschläge dazu im Netz (die hab ich mir nur damals nicht genauer angeschaut, weil mir mein Umweg über match dann doch immer noch der performantere erschien für das, was ich vor hatte).
[1] Davon abgesehen, von anderen Implementierungen kennt man das ja auch, bei PHPs preg_split bspw., auch wenn es dort explizit über das Flag PREG_SPLIT_DELIM_CAPTURE aktiviert werden muss.
MfG ChrisB
Light travels faster than sound - that's why most people appear bright until you hear them speak.