8
ho bisogno di abbinare con un javascript RegExp la stringa: bimbo999 da questo un tag: <a href="/game.php?village=828&screen=info_player&id=29956" >bimbo999</a>
Javascript RegExp partita testo tra <a> tag
I numeri da URL Vars (villaggio e id) stanno cambiando ogni volta, quindi devo abbinare i numeri in qualche modo con 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">
ho provato con questo:
var match = h.match(/Supported player:</th>(.*)<\/a><\/th></i);
ma non sta funzionando. Ragazzi potete aiutarmi?
Perché stai manipolando l'HTML direttamente? È molto più sicuro (e solitamente più semplice) lavorare attraverso il DOM. Trova il giusto '
L'uso di espressioni regolari per attraversare i tag html non è una buona pratica. Hai provato a creare un elemento DOM dal tag e ottenere innerHTML? – Jerry
risposta
Prova questo:
<a[^>]*>
corrisponde l'aperturaa
tag([\s\S]*?)
partite ogni carattere prima del tag di chiusura, il meno possibile<\/a>
partite il tag di chiusura([\s\S]*?)
acquisisce il testo tra i tag come argomento 1 nella matrice restituita da una chiamataexec
omatch
.Questo è veramente buono solo per trovare testo all'interno
a
elementi, non è incredibilmente sicura o affidabile, ma se hai una grande pagina di link e basta loro testo, questo lo farà.Un modo molto più sicuro di fare questo senza RegExp sarebbe:
fonte
2011-10-23 06:41:19 zzzzBov
'/ ] *> ((?:. | \ R? \ N) *?) <\/a>/'è utile anche per la corrispondenza con il prossimo tag di chiusura su più righe. – par
Corrisponde a più righe già '\ s corrisponde a qualsiasi carattere di spazio bianco [\ r \ n \ t \ f]' –
Non ho esperienza con Regex, ma penso che è possibile utilizzare JQuery con
.text()
!JQuery API - .text()
Voglio dire, se si utilizza:
Otterrete il vostro testo senza utilizzare Regex!
.find("a")
e poi ti dà un elenco di s' tag oggetti e quindi utilizzare.each()
loop su quella lista, allora si può ottenere il testo utilizzando.text()
un.Oppure puoi utilizzare un selettore di classe, un ID o qualsiasi cosa tu voglia!
fonte
2011-10-23 06:47:28
questo potrebbe anche essere fatto con javascript normale usando 'getElementsByTagName ('a')'. Non è una cattiva idea. – zzzzBov
Come nota a margine, non è una buona idea usare regex per analizzare HTML :) – Ryan
Problemi correlati