LeKuchen: RegEx

Hallo zusammen,

trotz massenhaft Anleitungen im Web raffe ich es irgendwie nicht.

Ich möchte in JS einen Match auf HTML-Code machen, Browser nur IE.

HTML:
<TABLE cellSpacing=1 cellPadding=2>
<tr>
<td>test
...beliebiger Code...
bla</td>
</tr>
</TABLE>

Gematcht werden soll die gesamte Tabelle. Soweit bin ich gekommen:

var qc = document.body.innerHTML;
var sst = qc.match(/<TABLE cellSpacing=1 cellPadding=2>\r\n<TBODY>\r\n(.*?)\r\n</TBODY></TABLE>\r\n/i);

Klappt aber immernoch nicht. Jemand einen Tipp?

LeKuchen

  1. HTML:
    <TABLE cellSpacing=1 cellPadding=2>
    <tr>

    /<TABLE cellSpacing=1 cellPadding=2>\r\n<TBODY>

    Ich würde behaupten, dass es zumindest schon mal schwierig ist, eine Übereinstimmung zwischen einem Text und einem Muster zu erhalten, wenn das Muster "<TBODY>" enthält, der Text aber offenbar nicht.

    1. Hallo,

      Ich würde behaupten, dass es zumindest schon mal schwierig ist, eine Übereinstimmung zwischen einem Text und einem Muster zu erhalten, wenn das Muster "<TBODY>" enthält, der Text aber offenbar nicht.

      Wenn Du Dir mal document.body.innerHTML ausgeben lässt, dann wirst du sehen, dass dort sehr wohl ein "<TBODY>" enthalten ist, obwohl nicht im HTML-Code angegeben.... :rolleyes:

      Das hier matcht das Beispiel, aber es könenn natürlich beliebig viele Zeilen HTML Code zwischen öffnendem und schließendem TABLE-Tag kommen.

      qc.match(/<TABLE cellSpacing=1 cellPadding=2>\r\n.*\r\n.*\r\n.*</TABLE>/i)

      LeKuchen

  2. gudn tach!

    Gematcht werden soll die gesamte Tabelle.

    kannst auch einfach ohne regexp nach dem ersten vorkommnis von "<table>" und nach dem ersten von "</table>" suchen, und mit einer substring-funktion alles dazwischen extrahieren.

    var sst = qc.match(/<TABLE cellSpacing=1 cellPadding=2>\r\n<TBODY>\r\n(.*?)\r\n</TBODY></TABLE>\r\n/i);

    Klappt aber immernoch nicht. Jemand einen Tipp?

    leider gibt es afais den s-modifier nicht nicht js. insofern waere es hier wohl wirklich das geschickteste auf regexp zu verzichten.

    prost
    seth