0

我有一个包含所有结构(html、head 和其他标签)的 html 内容。我需要获取正文内容,所以我这样做了

data = data.replace(/.*<body.*?>(.*)<\/body>/mi,"$1");

但是那个正则表达式似乎不起作用,我做错了什么?

4

2 回答 2

1

Javascript 不支持s(=dot 匹配换行符) 开关,所以你必须使用[^](=any character) 而不是.

"<\n xxx \n>".replace(/<.*>/, "YES")  // < xxx >
"<\n xxx \n>".replace(/<[^]*>/, "YES") // YES
于 2012-06-01T09:33:58.323 回答
0

没有标志可以.匹配新行,因此您必须手动将其添加到匹配中。我建议使用空格类\s.*此外,不需要初始值。

data = data.replace(/<body.*?>((\s|.)*)<\/body>/mi,"$1");
于 2012-06-01T09:40:35.027 回答