rgb值转换成16进制

由于jQuery获取css中的background有时候是rgb值,所以往往需要一个转换函数.

以前觉得难,还写个博客记录,现在觉得好容易。

let testColor = "rgb(20, 20, 20)";
const rgbToHex = (color) => {
  let arr = color.split(',');
  let r = +arr[0].split('(')[1];
  let g = +arr[1];
  let b = +arr[2].split(')')[0];
  let value = (1 << 24) + r * (1 << 16) + g * (1 << 8) + b;
  value = value.toString(16);
  return '#' + value.slice(1);
};
console.log(rgbToHex(testColor)); // #141414
console.log(rgbToHex('rgb(255, 255, 255)')) // #fffff

complete.

原文地址:https://www.cnblogs.com/can-i-do/p/7003915.html