将正文标签中的所有内容与正则表达式和javascript

时间:2018-09-05 10:01:07

标签: javascript html regex

我想知道是否有人可以帮助我使用javascript上的正则表达式。

所以基本上我有以下电子邮件正文示例:

<body lang="FR" link="#0563C1" vlink="#954F72"><div class="WordSection1"><p style="margin:0cm;margin-bottom:.0001pt">Bonjour,<o:p></o:p></p></div></body>

使用正则表达式,我只需要获取body标签之间的内容,我该怎么做?

我之前尝试过此操作(str是上面的html代码):str.match(/<body\s[^>]*>(.*?)<\/body>/gi);

但是当我尝试使用str [1]来获得组1时,我总是变得不确定,不知道为什么吗?

重要说明:我正在ServiceNow上执行此操作,我需要在服务器端解析HTML,基本上我拥有的是字符串字段中的HTML代码。

2 个答案:

答案 0 :(得分:0)

您可以使用DOMParser

var parser = new DOMParser();
var doc = parser.parseFromString(str, "text/html");
var body = doc.getElementsByTagName('body')[0].innerHTML;
console.log(body);

答案 1 :(得分:0)

看这个问题How do you access the matched groups in a JavaScript regular expression?

这应该有效

var str = '<body lang="FR" link="#0563C1" vlink="#954F72"><div class="WordSection1"><p style="margin:0cm;margin-bottom:.0001pt">Bonjour,<o:p></o:p></p></div></body>'

var myregex = /<body\s[^>]*>(.*?)<\/body>/gi

var match = myregex.exec(str)

console.log(match[1])