正则表达式用于删除 js 中的 css 规则
Regex for remove rules of css in js
我想用正则表达式从字符串中删除一些 CSS 规则
正是我想删除所有带有":悬停"的规则例如身体:悬停
所以我需要删除 ","之间的字符串,其中包含 :悬停在类似这个字符串中的内容
.hovered,.showFrame .container-fluid .added-element:hover , #MR_Modal_View.showFrame .container-fluid .added-element:hover , .showFrame .container-fluid:hover, #MR_Modal_View.showFrame .container-fluid:hover, .added-element:hover, body , div.test , #MR_Modal_View_Modal .added-element:hover, .ui-resizable-resizing
如果你想
使用正则表达式,你可以做到。我的建议是使用三步法。将文本拆分为行,捕获所需的文本,然后再次连接字符串:
var text = ".hovered,.showFrame .container-fluid .added-element:hover , #MR_Modal_View.showFrame .container-fluid .added-element:hover ,.showFrame .container-fluid:hover,#MR_Modal_View.showFrame .container-fluid:hover,.added-element:hover, body ,div.test , #MR_Modal_View_Modal .added-element:hover, .ui-resizable-resizing";
text = text.replace(/,/g,''n').replace(/.*:hover's*'n*/g, "").replace(/'n/g,',');
此正则表达式的工作原理看这个例子
您不必为此使用正则表达式。下面的代码将字符串吐到类数组中,筛选不包含:hover
的类,并将它们转换回字符串。
var classes = ".hovered,.showFrame .container-fluid .added-element:hover, #MR_Modal_View.showFrame container-fluid .added-element:hover ,.showFrame .container-fluid:hover, MR_Modal_View.showFrame .container-fluid:hover, .added-element:hover, #MR_Modal_View_Modal added-element:hover,.ui-resizable-resizing";
var filteredClasses = classes.split(',')
.filter(function (c) {
return c.indexOf(':hover') === -1;
})
.join(', ');
console.log(filteredClasses) // prints ".hovered,.ui-resizable-resizing"
很难匹配不同浏览器的 CSS 规则(兼容问题),
我发现这个库可能有助于删除/添加/更改规则:
https://github.com/cssobj/cssobj
它将CSSOM从JS渲染到<head>
,你可以直接从JS对象更改规则。
相关文章:
- 用Javascript修改内部标记的CSS规则
- 如何禁用和启用css规则
- 使用javascript或jquery覆盖css规则
- 新的javascript HTML元素不遵循css规则
- 仅将 CSS 规则应用于
中的第一个 ,而不分配类/ID - 正则表达式用于删除 js 中的 css 规则
- 通过jQuery或Javascript应用于父窗口的外部css规则
- 在javascript问题中应用复合css规则
- 使用JS添加CSS规则
- 循环使用CSS规则遍历数组,并将它们应用于元素
- 可以't覆盖CSS规则
- 选择所有具有特定css规则但没有jQuery的节点
- HTML按钮即使在聚焦时也不会点击,CSS规则也会生效
- 如何更改外部样式表的css规则
- CSS 规则在执行 JavaScript 时不会应用任何效果
- 我的 CSS 规则在我的 jQuery 函数执行后加载
- 如果文件名取自用户,则不应用 CSS 规则
- 使用 httpscript 使用 css 规则
- 如何将 css 规则应用于 Javascript 表达式
- 在 IE6 中运行时添加 CSS 规则 - 对象不支持此属性或方法