我有如下各种颜色定义,
i.cat1{background:rgb(249, 115, 0);} // RGB with 3 params
i.cat2{background:rgba(14, 48, 71, 0.99);} // RGBA with 4 params
我的目标是设置一个rgba(x,y,z,opacity)
具有预定义不透明度变量的新变量,例如 0.4(无论以前的不透明度是否存在);但从x,y,z
保证存在的现有值来看。
前任。
from #1: rgb(249,115,0) --> rgba(249,115,0,0.4)
from #2: rgba(14,48,71,0.99) --> rgba(14,48,71,0.4)
除了解析括号内的标记并检查它是 3 还是 4 个参数之外,还有其他快速的正则表达式解决方案吗?
当然,我们可以做str.replace('rgb(', 'rgba(');
第一步,但我只想要一个快速的 4 参数表达式。
假设我将当前颜色作为字符串获取,比如说var color
是原始 str,所以这是一个正则表达式问题。
var test = [
"rgb(249,115,0)",
"rgba(14,48,71,0.99)",
];
console.log(test.map(function (a) {
return a.replace(/rgba?(\(\s*\d+\s*,\s*\d+\s*,\s*\d+)(?:\s*,.+?)?\)/, 'rgba$1,0.4)');
}));
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句