functionhexToRgb(hex) { var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex); return result ? { r: parseInt(result[1], 16), g: parseInt(result[2], 16), b: parseInt(result[3], 16) } : null; }
alert(hexToRgb("#0033ff").g); // "51";
1 2 3 4 5
functionrgbToHex(r, g, b) { return"#" + (1 << 24 | r << 16 | g << 8 | b).toString(16).slice(1); }
alert(rgbToHex(0, 51, 255)); // #0033ff
1 2 3 4 5 6 7 8
functionhexToRgb(hex) { var bigint = parseInt(hex, 16); var r = (bigint >> 16) & 255; var g = (bigint >> 8) & 255; var b = bigint & 255;
return r + "," + g + "," + b; }
从字符串中提取颜色
#fff
#ffffff
white
rgb(255, 255, 255)
1 2 3 4 5 6 7
functionparseColor(input) { var div = document.createElement('div'), m; div.style.color = input; m = getComputedStyle(div).color.match(/^rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i); if( m) return [m[1],m[2],m[3]]; elsethrownewError("Colour "+input+" could not be parsed."); }
其他操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
console.log(Number("0xdc"));
var stringToColour = function(str) { var hash = 0; for (var i = 0; i < str.length; i++) { hash = str.charCodeAt(i) + ((hash << 5) - hash); } var colour = '#'; for (var i = 0; i < 3; i++) { var value = (hash >> (i * 8)) & 0xFF; colour += ('00' + value.toString(16)).substr(-2); } return colour; } stringToColour("greenish"); // -> #9bc63b