富文本中去掉 HTML 和 CSS 样式,只保留纯文本

打印 上一主题 下一主题

主题 536|帖子 536|积分 1608

要从富文本中去掉 HTML 和 CSS 样式,只保留纯文本,可以使用以下几种方法:
1. 纯 JavaScript 方法
你可以使用 JavaScript 的 innerText 或 textContent 来提取文本,而忽略 HTML 标签和样式。
  1. function stripHtml(html) {
  2.     var tempDiv = document.createElement("div");
  3.     tempDiv.innerHTML = html;
  4.     return tempDiv.innerText || tempDiv.textContent || "";
  5. }
  6. var richText = "<div style='color: red;'>Hello <b>World</b>!</div>";
  7. var plainText = stripHtml(richText);
  8. console.log(plainText);  // 输出 "Hello World!"
复制代码
2. 使用正则表达式

可以通过正则表达式去除 HTML 标签。虽然这种方法比力简朴,但它可能无法处理一些嵌套标签或特殊的情况,因此需要根据需求进行调整。
  1. function stripHtmlTags(html) {
  2.     return html.replace(/<[^>]*>/g, '');
  3. }
  4. var richText = "<div style='color: red;'>Hello <b>World</b>!</div>";
  5. var plainText = stripHtmlTags(richText);
  6. console.log(plainText);  // 输出 "Hello World!"
复制代码
3. 使用欣赏器的 DOM 解析

可以利用欣赏器内置的 DOM 解析能力来处理更复杂的 HTML 内容。
  1. function stripStylesAndHtml(html) {
  2.     var tempDiv = document.createElement("div");
  3.     tempDiv.innerHTML = html;
  4.    
  5.     // 遍历所有元素,移除内联样式
  6.     var elements = tempDiv.getElementsByTagName("*");
  7.     for (var i = 0; i < elements.length; i++) {
  8.         elements[i].removeAttribute("style");
  9.     }
  10.    
  11.     return tempDiv.innerText || tempDiv.textContent || "";
  12. }
  13. var richText = "<div style='color: red;'>Hello <b>World</b>!</div>";
  14. var plainText = stripStylesAndHtml(richText);
  15. console.log(plainText);  // 输出 "Hello World!"
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

盛世宏图

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表