我有一个包含 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/