如何从Javascript中的Link中提取文本?

时间:2011-06-14 14:29:27

标签: javascript regex

我有以下字符串:

<a href="http://stackoverflow.com" target="_blank">StackOverFlow</a>

如何从字符串中提取文本(即StackOverFlow)?

4 个答案:

答案 0 :(得分:2)

不需要正则表达式:

var t_ = document.createElement('div'),
    a;
t_.innerHTML = htmlString; // <- string containing your HTML
a = t_.children[0];

var text = a.textContent || a.innerText; // W3C vs IE

实际上是parsing HTML with regular expressions is evil。虽然为特定情况提供表达式可能很容易,但对于不同的字符串可能效果不佳。

答案 1 :(得分:0)

document.getElementById('link_id').innerHTML;

这是我之前的解决方案,用户添加了更多描述,但这是当前描述的解决方案

var s = '<a href="http://stackoverflow.com" target="_blank">StackOverFlow</a>';
var text = s.match(/<a[^\b>]+>(.+)[\<]\/a>/)[1];

答案 2 :(得分:0)

如果你可以像你这样添加id链接:`StackOverFlow',那么你可以得到这样的文字:

document.getElementById('linkID').innerHTML;

答案 3 :(得分:0)

window.onload = function(){
    var text = '<a href="http://stackoverflow.com" target="_blank">StackOverFlow</a>';
    var parser = null;
    if (window.DOMParser){
        parser = new DOMParser();
        xmlDoc = parser.parseFromString(text,"text/xml");
    } else{ // Internet Explorer
        xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.async="false";
        xmlDoc.loadXML(text); 
    }
    var a = xmlDoc.childNodes[0];
    alert(a.childNodes[0].nodeValue);
}

http://www.w3schools.com/dom/dom_parser.asp