Примеры JavaScript - Как преобразовать значение цвета из rgb(n,n,n) в #HEX?

ОГЛАВЛЕНИЕ


Как преобразовать значение цвета из rgb(n,n,n) в #HEX?

Например, rgb(255,255,255) или rgb(100%,100%,100%) в FFFFFF. Заодно функция расширяет сокращенную шеснадцатиричную запись цвета в полную, например, #FAE в FFAAEE. Возвращается шеснадцатиричное значение цвета без ведущего символа #.

function getHexRGBColor(color)
{
  color = color.replace(/\s/g,"");
  var aRGB = color.match(/^rgb\((\d{1,3}[%]?),(\d{1,3}[%]?),(\d{1,3}[%]?)\)$/i);

  if(aRGB)
  {
    color = '';
    for (var i=1;  i<=3; i++) color += Math.round((aRGB[i][aRGB[i].length-1]=="%"?2.55:1)*parseInt(aRGB[i])).toString(16).replace(/^(.)$/,'0$1');
  }
  else color = color.replace(/^#?([\da-f])([\da-f])([\da-f])$/i, '$1$1$2$2$3$3');
 
  return color;
}