富文本中去掉 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!"
相关推荐
LYFlied3 分钟前
【每日算法】LeetCode 62. 不同路径(多维动态规划)
前端·数据结构·算法·leetcode·动态规划
console.log('npc')19 分钟前
vue3文件上传弹窗,图片pdf,word,结合预览kkview
前端·javascript·vue.js·pdf·word
inferno26 分钟前
CSS 基础(第二部分)
前端·css
BD_Marathon28 分钟前
Router_路由传参
前端·javascript·vue.js
闲云一鹤35 分钟前
Cesium 去掉默认瓦片和地形,解决网络不好时地图加载缓慢的问题
前端·cesium
Dreamcatcher_AC37 分钟前
前端面试高频13问
前端·javascript·vue.js
AI陪跑37 分钟前
深入剖析:GrapesJS 中 addStyle() 导致拖放失效的问题
前端·javascript·react.js
登山人在路上38 分钟前
Vue中导出和导入
前端·javascript·vue.js
消失的旧时光-194341 分钟前
Flutter 路由从 Navigator 到 go_router:嵌套路由 / 登录守卫 / 深链一次讲透
前端·javascript·网络
掘金酱1 小时前
🏆2025 AI/Vibe Coding 对我的影响 | 年终技术征文
前端·人工智能·后端