天天看點

js 将color值rgb轉化為16進制

javascript通過dom獲得backgroundColor等style的顔色值時得到的是一個rgb格式的值,如rgb(12,12,12).

下面是我寫的一個轉換函數:

function RGBToHex(rgb){
   var regexp = /^rgb/(([0-9]{0,3})/,/s([0-9]{0,3})/,/s([0-9]{0,3})/)/g;
   var re = rgb.replace(regexp, "$1 $2 $3").split(" ");//利用正規表達式去掉多餘的部分 
   var hexColor = "#"; var hex = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F']; 
   for (var i = 0; i < 3; i++) { 
        var r = null; var c = re[i];
        var hexAr = []; 
        while (c > 16) { 
              r = c % 16; 
              c = (c / 16) >> 0;
              hexAr.push(hex[r]); 
         } hexAr.push(hex[c]); 
       hexColor += hexAr.reverse().join('');
    } 
   //alert(hexColor) 
   return hexColor; 
}
           
js 将color值rgb轉化為16進制
js 将color值rgb轉化為16進制
js 将color值rgb轉化為16進制
js 将color值rgb轉化為16進制
js 将color值rgb轉化為16進制
js 将color值rgb轉化為16進制

繼續閱讀