Javascript RegExp匹配<a>标签之间的文本

Ovi*_*eka 8 javascript regex match

我需要匹配一个javascript RegExp字符串:bimbo999来自这个标签: <a href="/game.php?village=828&amp;screen=info_player&amp;id=29956" >bimbo999</a>

来自URL变量(村庄和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&amp;screen=info_player&amp;id=29956" >bimbo999</a></th></tr>
    <tr><td>Village:</td><td><a href="/game.php?village=828&amp;screen=info_village&amp;id=848" >bimbo999s village (515|520) K55</a></td></tr>
    <tr><td>Origin of the troops:</td><td><a href="/game.php?village=828&amp;screen=info_village&amp;id=828" >KaLa I (514|520) K55</a></td></tr>
    </table><br />

    <h4>Units:</h4>
    <table class="vis">
Run Code Online (Sandbox Code Playgroud)

我试过这个:

var match = h.match(/Supported player:</th>(.*)<\/a><\/th></i);
Run Code Online (Sandbox Code Playgroud)

但是没有用.你们能帮助我吗?

zzz*_*Bov 23

试试这个:

/<a[^>]*>([\s\S]*?)<\/a>/
Run Code Online (Sandbox Code Playgroud)
  • <a[^>]*>匹配开始a标记
  • ([\s\S]*?) 匹配结束标记之前的任何字符,尽可能少
  • <\/a> 匹配结束标记

所述([\s\S]*?)捕获作为在阵列中的参数1的标签之间的文本从返回execmatch呼叫.

这对于在元素中查找文本非常有用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;
}
Run Code Online (Sandbox Code Playgroud)