正则表达式匹配HTML正文的内容

LM.*_*LM. 0 javascript regex

编辑:OOPS,对不起,我不清楚.我有一个从AJAX获得的字符串是一个xhtml文档,我需要获取它的body标签,除非我可以从字符串生成一个dom树?

我需要从字符串中的body标签获取所有内容,包括标记,以及javascript正则表达式.

我知道这是重复的,但我在其他问题中找到的正则表达式是针对不同风格的正则表达式,并给了我错误.

预先感谢.

geo*_*wa4 9

document.getElementsByTagName('body')[0].innerHTML将返回body标签中的所有内容的字符串.这不是正则表达式,但我不确定你为什么需要一个...?

POST问题编辑:

您使用has responseTextresponseXML属性执行AJAX的XHR对象.只要响应是有效的xml,这可能应该是,你可以getElementsByTagName在我提到的xml对象上获得你想要使用的任何标记.但是如果你只想要身体的内在部分,我会这样做:

var inner = myXHR.responseText.split(/(<body>|</body>)/ig)[2]);
Run Code Online (Sandbox Code Playgroud)


Ben*_*ter 5

正如您将在本网站和其他网站中看到的那样,正则表达式不是解析DOM的理想工具.George IV建议的最理想的方法是使用更适合这个的JavaScript工具,即getElementsByTagName并获取innerHTML:

var bodyText = document.getElementsByTagName("body")[0].innerHTML;
Run Code Online (Sandbox Code Playgroud)

编辑1:我还没有检查过,但是Rudisimo提出了一个显示许多承诺的工具- XRegExp库,它是MIT的开源和可扩展库.这可能是一个可行的选择 - 我仍然认为DOM是更好的方法,但这看起来远远优于正则表达式的标准JavaScript实现.

编辑2:由于Gumbo提供的示例,我放弃了之前关于正则表达式引擎的陈述[出于准确性的原因] - 但表达式可能是荒谬的.但是,我确实认为在这种情况下使用正则表达式本质上是不好的方法,你应该使用前面提到的例子来引用DOM.