8
que necesito para que coincida con un javascript RegExp la cadena: bimbo999 de esta una etiqueta: <a href="/game.php?village=828&screen=info_player&id=29956" >bimbo999</a>
Javascript RegExp texto partido entre <a> etiquetas
Los números de URL VARs (pueblo e id) están cambiando cada vez que lo que tengo que hacer coincidir los números de alguna manera 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">
he intentado con esto:
var match = h.match(/Supported player:</th>(.*)<\/a><\/th></i);
pero no está funcionando. ¿Pueden ayudarme chicos?
¿Por qué manipulas el HTML directamente? Es mucho más seguro (y generalmente más fácil) trabajar a través del DOM. Busque el '
El uso de expresiones regulares para atravesar etiquetas html no es una buena práctica. ¿Has intentado crear un elemento DOM a partir de la etiqueta y obtener innerHTML? – Jerry
Respuesta
Prueba esto:
<a[^>]*>
coincide con la aperturaa
etiqueta([\s\S]*?)
equivale a cualquier caracter antes de la etiqueta de cierre, el menor número posible<\/a>
partidos de la etiqueta de cierreEl
([\s\S]*?)
captura el texto entre las etiquetas como argumento 1 en la matriz devuelta por una llamadaexec
omatch
.Esto es realmente sólo es bueno para encontrar texto dentro
a
elementos, no es muy segura y fiable, pero si usted tiene una gran página de enlaces y sólo tiene su texto, esto lo hará.Una manera mucho más segura de hacer esto sin RegExp sería:
Fuente
2011-10-23 06:41:19 zzzzBov
'/ ] *> ((?:. | \ R? \ N) *?) <\/a>/'también es útil para coincidir con la siguiente etiqueta de cierre en varias líneas. – par
Coincide en varias líneas ya que '\ s coincide con cualquier carácter de espacio en blanco [\ r \ n \ t \ f]' –
no tengo experiencia con expresiones regulares, pero creo que se puede usar jQuery con
.text()
!JQuery API - .text()
quiero decir que si usted utiliza:
Usted recibirá su texto sin utilizar expresiones regulares!
.find("a")
y luego le da una lista de un 's Etiquetas objetos y luego usar.each()
de bucle en esa lista, entonces puede obtener el texto utilizando.text()
.¡O puede utilizar un selector de clase, identificación o lo que desee!
Fuente
2011-10-23 06:47:28
esto también se puede hacer con javascript normal usando 'getElementsByTagName ('a')'. No es una mala idea. – zzzzBov
Como nota al margen, no es una buena idea usar expresiones regulares para analizar HTML :) – Ryan
Cuestiones relacionadas