javascript - 有人可以告诉我从字符串中删除特定内联 CSS 样式的最佳方法吗?

标签 javascript css regex

我有一个包含 html/CSS 的字符串(该字符串是使用富文本编辑器创建的)。数据被多个应用程序使用,一些应用程序按原样使用格式,一些应用程序尝试将新格式应用于数据。我们对 html 没有任何问题,因为它很容易删除这些数据。

我不确定从字符串中删除特定 CSS 的最佳方法是什么。仅供引用...某些字符串可能不包含 CSS...我正在考虑使用正则表达式..但不太确定它是否是一个万无一失的方法....

我知道我们可以使用下面的方法来删除

document.getElementById("whatever").className = "";
$('whatever').remmoveClass();

但这会删除所有 CSS 样式。

例如:我只需要从下面的文本中删除下面的内联 CSS

<style type="text/css"> p { text-indent: 0pt;padding: 0px 0px 0px 0px;margin-top: 0px;margin-right: 0px;margin-bottom: 12px;margin-left: 0px;text-align: left;font-family: 'Verdana';font-style: Normal;font-weight: normal;font-size: 16px;color: #000000; } .defaultDocumentStyle { telerik-style-type: default;telerik-style-name: defaultDocumentStyle;font-family: 'Verdana';font-style: Normal;font-weight: bold;font-size: 10.6700000762939px;margin-bottom: 12px; } </style><p><span>ddfggfg</span></p>

我只需要ddfggfg

编辑:该字符串可能不一定是 html 字符串,因为它们也可以使用简单的文本编辑器,因此我不能假设该字符串将包含 HTML。

我主要在将数据导出为 CSV/PDF 时遇到此问题。内联 CSS 类与数据一起导出。

谢谢,
巴拉尼

最佳答案

您需要解析 HTML 并删除 style="" 和可能的 class="" 属性。

使用 jQuery:

var dom = $('<div>' + source + '</div>');
dom.find('*').removeAttr('style');
var cleaned = dom.html();

您可能还需要 .find('style').remove() 它们。

关于javascript - 有人可以告诉我从字符串中删除特定内联 CSS 样式的最佳方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14445023/

相关文章:

html - 嵌套 Div 使按钮围绕电话 : Link?

html - Z-index 导致鼠标与视频交互失败

句子的正则表达式但忽略了网站

c# - 正则表达式获取字符后的字符串

javascript - Rails 呈现部分 Ajax 错误但正确响应显示在调试器中

javascript - 如何在 javascript 中生成具有已知中心和半径的随机 Lat-lng 值?

jquery - 动画 CSS 生成 :after content?

javascript - 在 Node js 中使用动态参数为 URL 提供静态文件,无需任何库或框架

javascript - 通过右键单击事件从 Google Maps API 3 获取坐标

regex - 脚本字段正则表达式不适用于多个节点