0

I have following string:

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

How can I extract text (i.e. StackOverFlow) from the string?

mplungjan
  • 169,008
  • 28
  • 173
  • 236
Salman Virk
  • 12,007
  • 9
  • 36
  • 47

4 Answers4

2
document.getElementById('link_id').innerHTML;

That was my solution before, user added more description but this is solution for current description

var s = '<a href="http://stackoverflow.com" target="_blank">StackOverFlow</a>';
var text = s.match(/<a[^\b>]+>(.+)[\<]\/a>/)[1];
Senad Meškin
  • 13,597
  • 4
  • 37
  • 55
2

No regex required:

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

Actually parsing HTML with regular expressions is evil. Although it might be easy to come up with an expression for your specific case, it might not work well for a different string.

Community
  • 1
  • 1
Felix Kling
  • 795,719
  • 175
  • 1,089
  • 1,143
0

If you can add an id to your link like so: `StackOverFlow" then you can get the text like this:

document.getElementById('linkID').innerHTML;

James Allardice
  • 164,175
  • 21
  • 332
  • 312
  • Ohh can't believe it took me this long to realise that! I thought the question referred to an actual link in the DOM. – James Allardice Jun 14 '11 at 14:38
  • I'm pretty sure you're right, having read and re-read the question about 10 times now! That plus the fact that the OP posted that comment about using `innerHTML` on a "string/var" on @Senad's answer. – James Allardice Jun 14 '11 at 14:42
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

Prusse
  • 4,287
  • 2
  • 24
  • 29