カラーコードの変換

JavascriptでtargetのCSSによる色指定を取得する方法。

var color = target.style.color.match(/^rgb\(\s*(\d+),\s*(\d+),\s*(\d+)/);
var r = parseInt(RegExp.$1).toString(16);
r = (r.length==1) ? '0'+r : r;
var g = parseInt(RegExp.$2).toString(16);
g = (g.length==1) ? '0'+g : g;
var b = parseInt(RegExp.$3).toString(16);
b = (b.length==1) ? '0'+b : b;
alert('#'+r+g+b);

一旦parseIntして数値型にしてから、toString(16)で16進に変換するのがミソ。
もうちょっと綺麗に書きたい気もするけど、とりあえずメモ。