jQuery: conversione dei colori dal formato RGB ad esadecimale

Short link

Alcuni browser, come Firefox e Chrome, restituiscono i valori dei colori CSS in formato RGB anzichè in formato esadecimale. Possiamo tuttavia operare una semplice conversione tra i formati. Vediamo come.

Abbiamo un elemento con la seguente regola di stile:


#test {
	color: #06c;
}

Ecco come effettuare la conversione:


function rgbToHex(rgb) {
 rgb = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
 return "#" +
  ("0" + parseInt(rgb[1],10).toString(16)).slice(-2) +
  ("0" + parseInt(rgb[2],10).toString(16)).slice(-2) +
  ("0" + parseInt(rgb[3],10).toString(16)).slice(-2);
}

Esempio pratico:


$(function() {

	var color = $('#test').css('color');
	
	console.log(color); //rgb(0, 102, 204) Chrome, Firefox

	
	var converted = rgbToHex(color);
	
	console.log(converted); // #0066cc

});