2

RSS リーダーが返す

Submitted by
<a href="http://www.reddit.com/user/guiness_as_usual">
    guiness_as_usual
</a><br/>
<a href="https://www.spaceglasses.com/">
    [link]
</a>
<a href="http://www.reddit.com/r/technology/comments/1kmdom/meta_glasses_become_a_real_life_iron_man/">
    [242 comments]
</a>

私がしなければならないことは、2 番目と 3 番目の href 属性を 2 つの異なる変数にキャッチすることです。これを JavaScript で行う必要があります。正規表現 JavaScript を使用してこれら 2 つの値を取得する方法を知っている人はいますか?

//編集これを正確に探していますが、Javascript http://rubular.com/r/ESRimQsZHc で結果[0]、結果[1]、および結果[2]をキャッチできるようにしたいです。

4

3 に答える 3

1

この質問の回答でわかるように、正規表現を使用して HTML を解析することはできません。この回答では、JavaScript で HTML を解析する方法について説明します。だから、これを試してください:

var el = document.createElement('div');
el.innerHTML = yourRssString;
var innerElements = el.getElementsByTagName('a');
var secondHref = innerElements[1].getAttribute('href');
var thirdHref = innerElements[2].getAttribute('href');
于 2013-08-19T15:50:23.627 に答える
1

絶対に正規表現を使用する必要がある場合。これを試すことができます:

var text = 'submitted by <a href="http://www.reddit.com/user/guiness_as_usual"> guiness_as_usual </a> <br/> <a href="https://www.spaceglasses.com/">[link]</a> <a href="http://www.reddit.com/r/technology/comments/1kmdom/meta_glasses_become_a_real_life_iron_man/">[242 comments]</a>',
    hrefs = [],
    search = /href="([^"]+)"/g;
while(hreftmp = search.exec(text)) {
    hrefs.push(hreftmp);
}

document.write(hrefs[1]);
document.write(hrefs[2]);

シンプルで、あなたの例で動作します。

于 2013-08-19T15:54:57.893 に答える
1

あなたはそのDOMParserように使うことができます

var parser = new DOMParser();
var tempDoc = parser.parseFromString(htmlStr,"text/html");
var anchor2 = tempDoc.getElementsByTagName('a')[1];
var anchor3 = tempDoc.getElementsByTagName('a')[2];
var href2 = anchor2.getAttribute("href");//or anchor2.href; to get fully qualified link
var href3 = anchor3.getAttribute("href");//or anchor3.href; to get fully qualified link
于 2013-08-19T15:45:19.447 に答える