Ich trau’ mich ja kaum, das hier zu schreiben … Aber es ist wirklich war.
Also: JavaScript: Ich will alles was im body einer HTML-Seite steht, haben. Ja, genau das, was zwischen <body> und </body> steht.
Dafür benutze ich den folgenden regulären Ausdruck in Javascript:
var b_html = b_html.replace(/^.*<body[^>]*>(.*)</body>.*$/i, "$1");
Normalerweise funktioniert das immer super und ohne Probleme. Dabei ist es auch egal, ob der body-Tag mit Sachen wie background verschmutzt ist oder nicht.
Jetzt programmiere ich an einer Intranet-Anwendung für einen Kunden und da funktioniert der reguläre Ausdruck nicht. Im Inhalt der Seite steht etwas, was die RegExp durcheinander bringen muß. Aber ich kann es nicht finden
.
Ich habe schon nur Teile des Inhalts zwischen dem einleitenden <body> und dem abschließenden </body>-Tag ausprobiert und da funktioniert es wie gewünscht. Nehme ich aber wieder die ganze Seite, geht es nicht.
Vor lauter Verzweiflung habe ich es jetzt ohne regulären Ausdruck gelöst. Aber dafür ist es auch mehr als eine Zeile.
Frage: Wo liegt der Fehler in meiner RegExp für den Inhalt des body einer HTML-Seite? Habt Ihr Vorschläge für einen besseren regulären Ausdruck?
Äh, nee - bitte jetzt keine Vorschläge a la Google. Habe ich durch - alles unbrauchbar. Oder sollte ich doch eine Lösung übersehen haben? Da es wie bereits gesagt eine Intranet-Anwendung ist, kann ich leider nichts weiter zum Inhalt der Seite hier schreiben
Aber vielleicht hat ja doch der oder die Eine oder Andere ‘n Tipp auf Lager. Würde mich riesig freuen.
In der Hoffnung, dass sich die Welt jetzt nicht völlig über mich kaputt lacht gehe ich denn mal zwischendurch meine RegExp-Kenntnisse auffrischen. Vielleicht sollte ich ja mit leichter aber guter Kost beginnen …
