1, 最近遇到一个需求 就是 需要 把rgb的颜色 来转成 16进制的# 颜色,思考半天 最后还是决定用正则来解决了。
例如 把 rgb(254, 204, 205) 转成 # FECCCD,代码如下:
//转换颜色 把rgb 转成 16进制 #
rgbToHex(rgb) {
const rgbValues = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
if (!rgbValues) {
return '';
}
const r = parseInt(rgbValues[1]);
const g = parseInt(rgbValues[2]);
const b = parseInt(rgbValues[3]);
const hex = `#${r.toString(16)}${g.toString(16)}${b.toString(16)}`;
return hex;
},
如图调用 这个方法(vue)里直接 把颜色传进去:
例如: var a = "rgb(254, 204, 205)" this.rgbToHex(a)
得到结果就是 #fecccd。如果需要 转成大写 可以加上 .toUpperCase() 方法。
转成大写就是 # FECCCD。
如果对您有帮助,还请点个赞,感谢!!!