我想知道是否有人可以帮助我使用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代码。
答案 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])