是否有可能將顏色#ff0000
轉換爲rgb?jquery#color to rgba?
所以轉換#ff0000
到rgb(255,0,0);
我敢肯定這一定是可能的,我只是不知道怎麼辦。任何見解都會很棒!
是否有可能將顏色#ff0000
轉換爲rgb?jquery#color to rgba?
所以轉換#ff0000
到rgb(255,0,0);
我敢肯定這一定是可能的,我只是不知道怎麼辦。任何見解都會很棒!
你可以使用:
var s = "#ff0000";
var patt = /^#([\da-fA-F]{2})([\da-fA-F]{2})([\da-fA-F]{2})$/;
var matches = patt.exec(s);
var rgb = "rgb("+parseInt(matches[1], 16)+","+parseInt(matches[2], 16)+","+parseInt(matches[3], 16)+");";
alert(rgb);
.css("background-color")
將返回RGB http://api.jquery.com/css/
您必須從十六進制定義中分離所有三個組件,然後將它們轉換爲十進制。這工作:
純粹與你有串的工作,你可以像這樣:
var color = '#FF5500';
首先,提取兩個十六進制數字的每種顏色:
var redHex = color.substring(1, 3);
var greenHex = color.substring(3, 5);
var blueHex = color.substring(5, 7);
然後,將它們轉換爲十進制:
var redDec = parseInt(redHex, 16);
var greenDec = parseInt(greenHex, 16);
var blueDec = parseInt(blueHex, 16);
最後,讓您的rgb()
字符串作爲結果:
var colorRgb = 'rgb(' + redDec + ', ' + greenDec + ', ' + blueDec + ')';
console.log(colorRgb);
,你會得到作爲輸出:
rgb(255, 85, 0)
這是否適用於所有可能的字符串? – daryl
只要這些字符串以一個無用的字符開頭,並且每種顏色都有兩位數 - 但是如果您沒有每種顏色的兩位數字,這將不起作用,並且需要一點返工。 –
http://jsfiddle.net/Paulpro/hTSLR/ – Paulpro
非常好。謹慎花一分鐘或2分鐘編輯並解釋這是如何工作的?我不是一個只是'複製和粘貼'最終結果的人。 – daryl
爲什麼不使用'var patt =/^#([\ dA-F] {2})([\ dA-F] {2})([\ dA-F] {2})$/i;'? –