【问题标题】:Strip mail body from html with format preserving with Javascript从 html 中剥离邮件正文,并使用 Javascript 保留格式
【发布时间】:2025-12-13 17:20:03
【问题描述】:

我有一个可能包含 html/css 的邮件内容。我想从标签、图像中清除文本,但想保留格式,所以它仍然足够可读。

架构是:

1) 从服务器获取邮件;

2) 将其存储在数据库中;

3) 通过 Spring 后端向网页请求获取

4) 显示它已从 html/css 标记中清除,只是纯文本,其中将包含新行、空格和一些基本格式。

这段代码帮助我摆脱了 html 标记,但所有文本都变得可读性强。

var htmlToPlaintext = function(text) {
            return text ? String(text).replace(/<[^>]+>/gm, '') : '';
};

关于如何达到预期结果的任何建议?

P.S.:如果需要,我可以在 java 后端对数据进行预处理。

谢谢!

【问题讨论】:

  • “保留格式”是什么意思?这就是 HTML 所做的。它标记文本,因此可以以所需的格式显示。我很困惑。
  • 你想要这样的东西吗:console.log(document.body.textContent);

标签: javascript java jquery html css


【解决方案1】:

我认为您应该让浏览器为您执行此操作。

检查这个getText函数:

function getText(html)
{
   var tmp = document.createElement("div");
   tmp.innerHTML = html;
   return tmp.textContent||tmp.innerText;
}
var html = document.getElementById("htmlDiv").innerHTML;
alert(getText(html))
<div id='htmlDiv'>
  <div>this is first line. <span> another part</span></div>
  <div>this is another line. 
    <p>
      paragraph 1
    </p>
    <p> 
      paragraph 2
    </p>
  </div>
</div>

【讨论】: