我有一个包含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上工作。
答案 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)
答案 2 :(得分:0)
我不知道你可以使用哪个正则表达式,但我想我知道另一种解决方案。您还可以将var转换为DOM对象,然后读取body-child。