JavaScript 样式中的正则表达式

标签 javascript regex

我试图使用正则表达式从元素样式中删除所有“颜色”样式,但我失败了。

样式示例

cursor: pointer;background-color: yellow;color: lightgray;

样式应该变成的示例

cursor: pointer;background-color: yellow;

这是我正在使用的正则表达式color:[^;]+;

它捕获背景颜色并删除背景之后的部分。

最佳答案

这个正则表达式对我有用:

[\s;]color:[^;]+(?=;)|^color:[^;]+;

您会发现它以不同的方式处理颜色为第一个参数的情况。

var style = "cursor: pointer;background-color: yellow;color: lightgray;";
var replaced = style.replace(/[\s;]color:[^;]+(?=;)|^color:[^;]+;/g, '')

请注意,即使在这里使用正则表达式并没有那么糟糕,也可以通过简单的分割+过滤更有信心地完成此操作:

var replaced = style.split(';').filter(function(v){
   return v.split(':')[0].trim()!='color'
}).join(';');

关于JavaScript 样式中的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14778703/

相关文章:

javascript settimeout 在递归函数中不起作用

javascript - 正则表达式重复元素

java - 为什么我的正则表达式不匹配?

javascript - 尝试使用 VueRouter 迁移 Vue 应用程序时出现控制台错误

javascript - 页面加载后插入 YouTube iframe

javascript - 单击时转到新样式页面的图像页面

Javascript + 将 "<b>"转换为实际的粗体字体

javascript - 什么时候使用 setTimeout 与 Cron 比较合适?

Kotlin 的 when 语句中的正则表达式或通配符?

python - 如何在 Python csv writer 中将单引号替换为双引号?