2014-06-19 71 views
0

我有一個包含可變htmlSource HTML代碼:如何從包含HTML的變量中獲取正文內容?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title>IIS 8.0 Detailed Error - 404.0 - Not Found</title> 


</head> 
<body>xxx some code here yy</body> 
</html> 

如何創建一個新的變量htmlBodyOnly只包含「XXX在此的一些代碼YY」。如果可能的話,我想用正則表達式來做到這一點。我只是不知道如何使用正則表達式或類似的東西來排除開始和結束。

對不起,但我沒有jQuery來幫助。我只是在一個JavaScript變量上工作。沒有在DOM上工作。

+0

你的意思,你想要得到的''標籤都有效的內容? – KarelG

+0

是的,這是正確的 –

+2

您確定要使用正則表達式而不是HTML解析器嗎? http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 – tvanfosson

回答

2

這是醜陋的,但你可以把它作爲使用這種方法的字符串:

htmlsource.substring(htmlsource.indexOf("<body>")+6, htmlsource.indexOf("</body>")) 

+6是因爲字符串"<body>"有6個字符和indexOf方法返回要搜索的字符串中第一個字符的索引。

這裏的證明,它的作品給你的例子:http://jsfiddle.net/9wBkf/

這假定body標籤不會有任何屬性,即<body class="myClass>

+1

如果身體有一些屬性會怎麼樣?解析某些東西的最好方法是構建一個抽象語法樹; 'DOMParser'爲你做到這一點。 – 0xcaff

+0

如果標記格式是可靠的,我認爲這是要走的路,儘管我可能使用'.lastIndexOf()'作爲''。如果不需要,最好避免全面解析。 –

+0

@caffinatedmonkey好點...如果是這樣的話,那麼正則表達式將是最好的解決方案,雖然我不熟悉正則表達式在這種情況下提供幫助... – Shmoopy

相關問題