项目中遇到后端配置颜色#FFF16C0E是8位,但是前端解析可能无法展示,需要转成rgba形式后渲染,以下代码仅供参考,
适用于将 #ffffffff 转为 rgba(255,255,255,1)
function parseRGBA(val) {
val = val.trim().toLowerCase(); //去掉前后空格
let color = {};
try {
let argb = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(val);
color.r = parseInt(argb[2], 16);
color.g = parseInt(argb[3], 16);
color.b = parseInt(argb[4], 16);
color.a = parseInt(argb[1], 16) / 255;
} catch (e) {
console.log(e)
}
return 'rgba(' + color.r + ',' + color.g + ',' + color.b + ',' + color.a.toFixed(0) + ')';
}
//调用方法
parseRGBA('#FFF16C0E');