backgroudcolorをRGBからHEXに変換

javascript内でエレメントの色を取得すると、ブラウザやバージョンごとに表示形式が異なる。
表示形式には2種類があり、RGBとHEX(#000000)形式です。

お使いのブラウザで下記コードで実行すると表示形式が分かる。

$(id).style.color = black;
alert($(id).style.color);



ただ、javascriptで色を扱い、処理する際に不便となるため、どちらかの形式に統一したい。
今回はRGB形式であればHEX(#000000)に変換する関数を紹介します。

function colorToHex(color) {

    if (color.substr(0, 1) == '#') {
        return color;
    }
    var digits = /(.*?)rgb\((\d+), (\d+), (\d+)\)/.exec(color);

    var red = parseInt(digits[2]);
    var green = parseInt(digits[3]);
    var blue = parseInt(digits[4]);
    
    var rgb = blue | (green << 8) | (red << 16);
    return digits[1] + '#' + rgb.toString(16);
};


----------------------------------------------------------
VB C# .NET Freamworkの備忘録
http://ari-it.doorblog.jp/
javascriptの備忘録
http://ari-java.doorblog.jp/
---------------------------------------------------------