如何从包含HTML的变量中获取正文内容?

时间:2014-06-19 18:29:28

标签: javascript html

我有一个包含HTML代码的变量htmlSource

<!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,其中只包含&#34; xxx,这里有一些代码yy&#34;。如果可能的话,我想用正则表达式来做这件事。我只是不确定如何使用正则表达式或类似的东西排除开始和结束。

很抱歉,我没有jQuery可以帮助你。我正在研究一个javascript变量。没有在DOM上工作。

3 个答案:

答案 0 :(得分:2)

这很难看,但您可以使用此方法将其保留为字符串:

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

+6是因为字符串"<body>"有6个字符,而indexOf方法返回要搜索的字符串中第一个字符的索引。

以下是您的示例:http://jsfiddle.net/9wBkf/

的证据

这假设body标签没有属性,即<body class="myClass>

答案 1 :(得分:1)

您可以使用DOMParser来解析html并提取正文的内容。请参阅此问题:Converting HTML string into DOM elements?

var parser = new DOMParser()
var doc = parser.parseFromString(stringToParse, "text/html")
console.log(doc.body.innerHTML)

Here is a Fiddle!

答案 2 :(得分:0)

我不知道你可以使用哪个正则表达式,但我想我知道另一种解决方案。您还可以将var转换为DOM对象,然后读取body-child。

Converting HTML string into DOM elements?