jQuery: conversione dei colori dal formato RGB ad esadecimale

Una semplice soluzione in jQuery per la conversione dei colori dal formato RGB ad esadecimale.

jQuery di Gabriele Romanato

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

});