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

要从富文本中去掉 HTML 和 CSS 样式,只保留纯文本,可以使用以下几种方法:

  1. 纯 JavaScript 方法

你可以使用 JavaScript 的 innerTexttextContent 来提取文本,而忽略 HTML 标签和样式。

javascript 复制代码
function stripHtml(html) {
    var tempDiv = document.createElement("div");
    tempDiv.innerHTML = html;
    return tempDiv.innerText || tempDiv.textContent || "";
}

var richText = "<div style='color: red;'>Hello <b>World</b>!</div>";
var plainText = stripHtml(richText);
console.log(plainText);  // 输出 "Hello World!"

2. 使用正则表达式

可以通过正则表达式去除 HTML 标签。虽然这种方法比较简单,但它可能无法处理一些嵌套标签或特殊的情况,因此需要根据需求进行调整。

javascript 复制代码
function stripHtmlTags(html) {
    return html.replace(/<[^>]*>/g, '');
}

var richText = "<div style='color: red;'>Hello <b>World</b>!</div>";
var plainText = stripHtmlTags(richText);
console.log(plainText);  // 输出 "Hello World!"

3. 使用浏览器的 DOM 解析

可以利用浏览器内置的 DOM 解析能力来处理更复杂的 HTML 内容。

javascript 复制代码
function stripStylesAndHtml(html) {
    var tempDiv = document.createElement("div");
    tempDiv.innerHTML = html;
    
    // 遍历所有元素,移除内联样式
    var elements = tempDiv.getElementsByTagName("*");
    for (var i = 0; i < elements.length; i++) {
        elements[i].removeAttribute("style");
    }
    
    return tempDiv.innerText || tempDiv.textContent || "";
}

var richText = "<div style='color: red;'>Hello <b>World</b>!</div>";
var plainText = stripStylesAndHtml(richText);
console.log(plainText);  // 输出 "Hello World!"
相关推荐
李@十一₂⁰1 小时前
HTML 特殊字体符号
前端·html
小奶包他干奶奶3 小时前
Webpack学习——Loader(文件转换器)
前端·学习·webpack
zy happy3 小时前
若依 vue3 报错:找不到模块“@/api/xxxx/xxxxx”或其相应的类型声明。。Vue 3 can not find mod
前端·javascript·vue.js
潘小安3 小时前
Git Worktree + Claude Code:让你的开发效率翻倍的秘密武器
前端
meichaoWen4 小时前
【Vue3】vue3的全面学习(一)
前端·javascript·学习
小猪努力学前端4 小时前
在 React + React Router v7 SSR 项目里做多端适配,我踩的两个坑
前端·react.js
q***d1734 小时前
React桌面应用开发
前端·react.js·前端框架
8***29314 小时前
解决 Tomcat 跨域问题 - Tomcat 配置静态文件和 Java Web 服务(Spring MVC Springboot)同时允许跨域
java·前端·spring
0***144 小时前
React计算机视觉应用
前端·react.js·计算机视觉
Q***K554 小时前
React高级
前端·react.js·前端框架