2011-06-14 54 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