Javascript RegExp-match text zwischen <a> tags
Muss ich passen, mit einem javascript-RegExp-string: bimbo999 von diesem einen tag: <a href="/game.php?village=828&screen=info_player&id=29956" >bimbo999</a>
Die zahlen von URL vars (Dorf-und id) ändern sich jedes mal, so habe ich entsprechend die zahlen irgendwie mit RegExp.
</tr>
<tr><td>Sent</td><td >Oct 22, 2011 17:00:31</td></tr>
<tr>
<td colspan="2" valign="top" height="160" style="border: solid 1px black; padding: 4px;">
<table width="100%">
<tr><th width="60">Supported player:</th><th>
<a href="/game.php?village=828&screen=info_player&id=29956" >bimbo999</a></th></tr>
<tr><td>Village:</td><td><a href="/game.php?village=828&screen=info_village&id=848" >bimbo999s village (515|520) K55</a></td></tr>
<tr><td>Origin of the troops:</td><td><a href="/game.php?village=828&screen=info_village&id=828" >KaLa I (514|520) K55</a></td></tr>
</table><br />
<h4>Units:</h4>
<table class="vis">
Habe ich versucht mit diesem:
var match = h.match(/Supported player:</th>(.*)<\/a><\/th></i);
aber nicht funktioniert. Kann Euch mir helfen?
- Warum sind Sie der Manipulation der HTML-Code direkt? Es ist viel sicherer (und meist besser) zu arbeiten, durch die DOM. Finden Sie den richtigen
<table>
, dann die entsprechende<a>
- tags in der Tabelle mit jQuery oder eine cross-browser-Selektor-Bibliothek, wie Brutzeln und dann nur das innerHTML des<a>
tag zu Holen Sie sich bimbo999. - Mit regex zu durchqueren html-tags ist nicht sehr gute Praxis. Haben Sie versucht, einen DOM-element aus der tag-und immer innerHTML?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie dies:
<a[^>]*>
entspricht die öffnunga
tag([\s\S]*?)
entspricht einem beliebigen Zeichen vor dem schließenden-tag, so wenig wie möglich<\/a>
entspricht dem schließenden tagDen
([\s\S]*?)
erfasst den text zwischen den tags als argument 1 in das zurückgegebene array aus einemexec
odermatch
nennen.Dies ist wirklich nur gut für finden text innerhalb
a
Elemente, ist es nicht unglaublich sicher oder zuverlässig, aber wenn Sie haben eine große Seite mit links, und Sie brauchen nur Ihren text ein, dieser wird es tun.Eine viel sicherer Weg, dies zu tun, ohne RegExp wäre:
/<a[^>]*>((?:.|\r?\n)*?)<\/a>/
ist auch praktisch, um die Anpassung an die nächste schließende tag über mehrere Zeilen.\s match any white space character [\r\n\t\f ]
Ich habe keine Erfahrung mit Regex, aber ich denke, Sie können mit JQuery
.text()
!JQuery-API - .text()
Ich meine wenn man :
Erhalten Sie Ihren text ohne Verwendung von Regex!
.find("a")
und gibt Ihnen dann eine Liste der eine's tags-Objekte und verwenden Sie dann.each()
Schleife auf der Liste, dann kannst du den text mit.text()
.Oder Ihre können einen class-Selektor id oder alles, was Sie wollen!
getElementsByTagName('a')
. Keine schlechte Idee.