的總體思路是把HTML的字符串,它解析爲一個文件(的dom elements樹),然後遍歷它來提取信息。
如果該鏈接爲:
<a href="/browse/post/something/"><b>something</b> else</a>
首先遍歷樹找到錨標記,則:
anchor.textContent // returns "something else"
它是簡單的提取的元素中的文本,即使有下面的樹中還包含文本的其他元素。這也比正則表達式更強大。假設有人向錨點添加了類屬性,則接受的答案中的正則表達式將不再與錨點標記匹配。但基於遍歷的解決方案仍然可行。
在簡單情況下,你可以創建一個div,然後設置innerHTML
你的HTML字符串,然後遍歷它:
var html = '<p><a href="/browse/post/">Lorem</p> <p>Ipsum</p></a>';
var div = document.createElement("div");
div.innerHTML = html;
var anchors = div.getElementsByTagName("a");
for (var i = 0; i < anchors.length; i++) {
console.log(anchors[i].textContent);
}
這方面的一個更復雜的版本被打包在jQuery(string) function。
var html = '<div><p><a href="/browse/post/">Lorem</p> <p>Ipsum</p></a></div>';
jQuery(html).find("a").each(function() {
console.log(jQuery(this).text());
});
活生生的例子:http://jsfiddle.net/ygcFM/
的http://計算器。COM /問題/ 1732348 /正則表達式匹配開放標籤,除了-XHTML-自足標籤/ 1732454#1732454 – asawyer 2011-12-27 21:38:18
爲了便於閱讀,我總是喜歡文字的正則表達式,如'「這是一個字符串」.match(/ match me/i)' – tomfumb 2011-12-27 21:48:43
我很想知道如何使用XML解析器來完成這樣的事情。我基本上試圖修改一個現有的腳本來完成我需要它做的事情 - 你有一個很好的例子,可以用這種** right **方式來做一些事情嗎? – spazzed 2011-12-27 22:03:56