我试图使用正则表达式从元素样式中删除所有“颜色”样式,但我失败了。
样式示例
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/