簡體   English   中英

Javascript RegExp匹配<a>標簽</a>之間的文本

[英]Javascript RegExp match text between <a> tags

我需要匹配一個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">

我試過這個:

var match = h.match(/Supported player:</th>(.*)<\/a><\/th></i);

但是沒有用。 你們能幫助我嗎?

試試這個:

/<a[^>]*>([\s\S]*?)<\/a>/
  • <a[^>]*>匹配的開口a標簽
  • ([\\s\\S]*?)匹配結束標記之前的任何字符,盡可能少
  • <\\/a>匹配結束標記

([\\s\\S]*?)捕獲標記之間的文本作為從execmatch調用返回的數組中的參數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;
}

我沒有使用Regex的經驗,但我認為你可以在.text()使用JQuery!

JQuery API - .text()

我的意思是如果你使用:

var hrefText = $("a").text(); 

您將在不使用正則表達式的情況下獲得文本!

.find("a")然后給的標簽對象的列表,然后使用.each()來循環,列表上,則可以使用獲取文本.text()

或者你可以使用類選擇器,id或任何你想要的東西!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM