关于去掉富文本中的html标签和css样式的解决办法

本文介绍如何在使用Element UI的el-table组件时,处理表格列中的富文本内容。当数据源包含HTML标签和样式时,通过自定义模板和正则表达式,可以剥离富文本中的HTML标签,仅保留内容。示例代码展示了如何利用`highlight`函数截取并替换掉HTML标签,确保表格内容简洁明了。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

情况说明:el-table中表格列返回的数据是富文本内容,带有html标签和css样式,但是表格展示不需要这些,需要摘除。

解决方法:

<el-table-column prop="message" min-width="150" label="内容" :show-overflow-tooltip="true">
                  <template slot-scope="scope">
                    <span>{{ highlight(scope.row.message) }}</span>
                  </template>
                </el-table-column>

截取富文本中的body部分,去除html标签

 highlight(item) {
      let relStyle = /<body[^>]*>([\s\S]*)<\/body>/
      if (item.search(relStyle) > 0) {
        let newHtml = relStyle.exec(item).toString()
        return newHtml.replace(/<[^>]+>/g, '')
      } else {
        return item
      }
    }
在Vue3中,如果你想从富文本编辑器(如Quill、TinyMCE等)导出的内容中移除样式,通常需要处理HTML内容并清除多余的CSS样式。以下是一个基本步骤: 1. **获取富文本内容**: 使用编辑器提供的API,比如`getContent()`方法,获取到编辑器的HTML内容。 ```javascript const htmlContent = await yourEditorInstance.getContent(); ``` 2. **解析HTML并移除样式**: 可能需要用到一些DOM操作库,如`htmlparser2`或`cheerio`。首先创建一个新的干净文档片段,并逐行处理HTML。 ```javascript import cheerio from 'cheerio'; const $ = cheerio.load(htmlContent, { decodeEntities: true }); // 解码实体 // 清除style标签内的所有样式 $('style').remove(); // 如果你想进一步移除其他自定义class或id来的样式的应用 const filteredElements = $('*') .not(['script', 'noscript', 'style', 'head', 'title']) // 避免一些特殊元素 .filter((i, el) => !($(el).hasClass('custom-style') || $(el).attr('id'))); // 过滤特定class/id filteredElements.removeAttr('style'); // 移除元素的内联样式 filteredElements.removeAttr('class'); // 如果不需要保留某些class const cleanedHTML = $.html(); // 获取处理后的HTML ``` 3. **渲染到Vue组件**: 将清理后的HTML作为普通的字符串传入Vue组件的模板中,例如v-html指令。 ```vue <template> <div v-html="cleanedHTML"></div> </template> <script> export default { data() { return { cleanedHTML: '', }; }, methods: { async getCleanedContent() { ... // 之前提到的步骤 }, }, }; </script> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值