JavaScript RGB字符串(`rgb(r,g,b)`)到十六进制(`#rrggbb`)转换

问题描述 投票:1回答:3

componentToHex函数对于第一个组件r效果很好,但是对于其他两个组件gb,它却无法正常工作:

let componentToHex = (val) => {
  const a = val.toString(16);
  return a.length === 1 ? "0" + a : a;
};

let rgbToHex = (rgb) => {
  const hex = rgb.replace("rgb(", "").replace(")", "").split(",");
  const r = hex[0];
  const g = hex[1];
  const b = hex[2];

  return "#" + componentToHex(r) + componentToHex(g) + componentToHex(b);
}

console.log(rgbToHex ('rgb(1,255,148)'));
javascript hex rgb color-scheme color-conversion
3个回答
1
投票

您希望数字部分(val)为数字


1
投票

您忘了将分量转换为number,因此将它们作为string传递给componentToHex,这需要一个number


0
投票

尝试一下-

© www.soinside.com 2019 - 2024. All rights reserved.