我需要匹配一个javascript RegExp字符串:bimbo999来自这个标签:<a href="/game.php?village=828&screen=info_player&id=29956" >bimbo999</a>
URL vars(村庄和id)中的数字每次都在变化,因此我必须以某种方式将这些数字与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">
我试过这个:
var match = h.match(/Supported player:</th>(.*)<\/a><\/th></i);
但不起作用。你们能帮助我吗?
答案 0 :(得分:23)
试试这个:
/<a[^>]*>([\s\S]*?)<\/a>/
<a[^>]*>
与开头a
代码([\s\S]*?)
匹配结束标记之前的任何字符,尽可能少<\/a>
与结束标记 ([\s\S]*?)
将标记之间的文本捕获为exec
或match
调用返回的数组中的参数1。
这对在a
元素中找到文本非常有用,它不是非常安全或可靠,但是如果你有一个很大的链接页面,你只需要他们的文本,这样就可以了。
如果没有RegExp,更安全的方法是:
function getAnchorTexts(htmlStr) {
var div,
anchors,
i,
texts;
div = document.createElement('div');
div.innerHTML = htmlStr;
anchors = div.getElementsByTagName('a');
texts = [];
for (i = 0; i < anchors.length; i += 1) {
texts.push(anchors[i].text);
}
return texts;
}
答案 1 :(得分:3)
我没有使用Regex的经验,但我认为你可以在.text()
使用JQuery!
我的意思是你使用:
var hrefText = $("a").text();
您将在不使用正则表达式的情况下获取文本!
.find("a")
然后为您提供 a 标记对象的列表,然后使用.each()
在该列表上循环,然后您可以使用{{{{}}获取文本1}}。
或者你可以使用类选择器,id或任何你想要的东西!