富文本中去掉 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!"
相关推荐
_code_bear_6 分钟前
OpenSpec CLI 与 OPSX 工作流说明
前端·后端·架构
parade岁月32 分钟前
开源一个 Vue 3 Table:API 学 antdv、主题学 Nuxt UI
前端·vue.js
JiaWen技术圈36 分钟前
Web 安全深入审计检查清单
前端·安全
江米小枣tonylua1 小时前
从红绿灯到方向盘:TDD 在 AI 时代的新角色
前端·设计模式·ai编程
祀爱1 小时前
Asp.net core+ Layui 项目中编辑按钮传递数据的方法
前端·c#·asp.net·layui
DanCheOo1 小时前
Prompt 工程化管理:从散落在代码里到版本化、可测试、可回滚
前端·ai编程
涛涛ing1 小时前
Vue 3.5 下一站:cached 提案,重新定义响应式缓存
前端
胖子不胖1 小时前
svg之viewBox
前端
吹牛不交税1 小时前
tree-transfer-vue3 前端插件安装问题解决(--legacy-peer-deps)(其他插件可考虑)适用
前端·javascript·vue.js
ricardo19731 小时前
Chrome DevTools + Lighthouse + Performance API:前端性能调优三件套实操指南
前端