2011-06-14 55 views

回答

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。虽然可能很容易为您的具体情况提出一个表达式,但对于不同的字符串可能不适用。

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]; 
+0

我可以使用innerHTML上一个字符串的/ var? – svirk 2011-06-14 14:33:23

+0

@ user395881:否。只有DOM元素具有该属性。 – 2011-06-14 14:34:14

+0

您的描述不像以前那样,这就是我收到2票反对的原因。 – 2011-06-14 14:46:06

0

解决方案,如果你可以添加一个id你的链接,像这样:`计算器”,然后就可以得到这样的文字:

document.getElementById('linkID').innerHTML;

+0

HTML是在一个**字符串** ... – 2011-06-14 14:34:50

+0

哦,不能相信它花了我很长时间才意识到这一点!我认为这个问题涉及到DOM中的一个实际链接。 – 2011-06-14 14:38:36

+0

至少这是我的理解......可能是我错了。 – 2011-06-14 14:39:58

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