Hallo Fabian
Zuerst mal ein Hinweis: Du postest hier Quelltexte, in denen du sehr übersichtliche Einrückungen gemacht hast. Allerdings hast du diese Einrückungen durch ein Gemisch aus Tabulatoren und Leerzeichen realisiert. Übersichtlich ist es natürlich nur, wenn dein Editor einen Tabulator so breit darstellt, wie der Editor desjenigen, der das ganze dann versucht weiter zu bearbeiten. Offensichtlich ist bei dir ein Tabulator 3 Leerzeichen breit. Wenn ich den Quellcode kopiere und in meinen Editor kopiere, ist es schon wesentlich weniger übersichtlich, denn bei mir ist ein Tabulator nur 2 Leerzeichen breit. Wenn bei 2 aufeinander folgenden Zeilen die erste mit 6 Leerzeichen eingerückt ist und die 2. mit 2 Tabulatoren, sind bei dir beide Zeilen gleich weit eingerückt, bei mir ist die obere Zeile deutlich weiter eingerückt. Du solltest. um das zu vermeiden, entweder immer nur mit Tabulatoren einrücken, oder immer nur mit Leerzeichen einrücken, nie beides mischen.
Ich habe ihn mir bisher nur oberflächlich angesehen und weiß noch nicht, ob ich heute noch Zeit habe, um mic genauer damit zu befassen. Aber ein paar Sachen sind mir gleich aufgefallen.
Dein Quellcode enthält einen Fehler. In deiner extralangen Zeile benutzt du innerhalb von einem String die Zeichenfolge "</span>". Das geht nicht. Der Slash muss in einem String immer maskiert werden. Du musst "</span>" also durch "<\/span>" ersetzen.
Dein Formular enthält ein Div-Element, ein Label-Element, dann ein br-Element, dann eine Textarea , dann 2 mal br, wieder Label, span, br, textarea und br. Das, was im Fettdruck hervorgehoben habe, sind alles Inlineelemente. In Formularen sind in der Variante "Transitional" auch Inlineelemente erlaubt, in der Variante "Strict" nicht. Ich würde die Inlineelemete in Blockelemente einbauen, wie es sich gehört. aber es ist auch so erlaubt. Aber der merkwürdige Einsatz von br-Elementen, den du benutzt ist natürlich auch in der Variante Transitional nicht sinnvoll. ein br-Element ist ein Zeilenumbruch. Der hat nur da etwas zu suchen, wo auch eine Ziele steht, die man umbrechen kann. Unmittelbar vor dem Formularende oder 2 mal hintereinander macht sowas sicher gar keinen Sinn.
In deinem letzten Posting (Antwort 13) fragst du, dass du aus der Wortliste noch "folgende" Zeichen ausfiltern willst. Aber was du genau ausfiltern willst, schreibst du nicht. In Zeilen mit mehreren Zeichenketten, die durch Leerzeichen getrennt sind, soll jeweils die erste Zeichenkette nicht beachtet werden? Oder es sollen keine Zeichenfolgen berücksichtigt werden, die Ziffern enthalten? Oder keine Zeichenfolgen, die das Prozentzeichen enthalten? Oder es sollen Folgen ausgefiltert werden, die mit Ziffern anfangen? Oder welche, die mit dem Prozentzeichen aufhören? Oder vielleicht nur explizit die Ausdrücke "94% ", "88% ", "85% " und "82% "? Oder vielleicht nur explizit beim Ausdruck "94% speedtest" die Zeichenfolge "94% " usw.? Wenn du eindeutig formulierst, was gemacht werden soll, ist es wahrscheinlich auch nicht schwer, das in eine Scriptsprache zu übersetzen.