Найти каналы rgb из цвета HEX формата

174
13 апреля 2017, 18:41

Банальнейший вопрос, но я пока не знаю ответа.

Есть цвет в HEX формате, например #ccff88, это не важно.

Как с помощью регулярных выражений взять первые две цифры, затем 3-ю и 4-ю, затем 5-ю и 6-ю.

Например, как мне приходится делать:

color = "#ccff00";
rgb=color.match(/w+/gi);
r=rgb[0]+rgb[1];
g=rgb[2]+rgb[3];
b=rgb[4]+rgb[5];

Существует какой-то простой способ, чтобы задать порядковый номер символа и его получить, а не изощряться потом с массивами, объектами и их преобразованиями? Вроде:

color = "#ccff00";
r=color.match(/[1-й и 2-й символ]/gi);
g=color.match(/[3-й и 4-й символ]/gi);
b=color.match(/[5-й и 6-й символ]/gi);

Заранее очень благодарен!

Answer 1

function parseColor(c) { 
  var match; 
   
  if (match = c.match(/^#(..)(..)(..)$/) /* assignment */) { 
    match = match.map(function (x) { return +('0x'+x) }) 
  } else if (match = c.match(/^#(.)(.)(.)$/) /* assignment */) { 
    match = match.map(function (x) { return +('0x'+x+x) }) 
  } 
   
  if (match) { 
    return { r: match[1], g: match[2], b: match[3] }; 
  } 
} 
 
console.log(parseColor("#ccff88")); 
console.log(parseColor("#cf8"));

Answer 2

Не очень понятно, что Вам нужно.

Может быть это:

var string = "#ccff88";
alert( string[3] ); // вывели f
READ ALSO
Steam: обход мобильного подтверждения (escrow)

Steam: обход мобильного подтверждения (escrow)

Здравствуйте, помогите пожалуйста реализовать правильный гет запрос для мобильного подтверждения трейда в стимеЮзаю steam-totp для генерации...

418
Javascript, цепочка вызовов, как реализовать ответ в колбеке?

Javascript, цепочка вызовов, как реализовать ответ в колбеке?

Добрый день дамы и господаПишу для себя модуль на node js, не могу реализовать функцию save()

265
Проверка позиции ползунка у UI Slider

Проверка позиции ползунка у UI Slider

У меня реализован ползунок цены (http://apijqueryui

218
Плавный скролл с scrollSpeed

Плавный скролл с scrollSpeed

Нашел удобный вариант создания плавного скролла с JqueryВсе бы отлично но есть 1 проблема/баг

394