RGB轉換為16進制
String.prototype.colorHex = function () {
// RGB顔色值的正則
var reg = /^(rgb|RGB)/;
var color = this;
if (reg.test(color)) {
var strHex = "#";
// 把RGB的3個數值變成數組
var colorArr = color.replace(/(?:\(|\)|rgb|RGB)*/g, "").split(",");
// 轉成16進制
for (var i = 0; i < colorArr.length; i++) {
var hex = Number(colorArr[i]).toString(16);
if (hex === "0") {
hex += hex;
}
strHex += hex;
}
return strHex;
} else {
return String(color);
}
};
使用方式
"rgb(255,255,255)".colorHex(); // #ffffff
16進制轉換為RGB
String.prototype.colorRgb = function () {
// 16進制顔色值的正則
var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;
// 把顔色值變成小寫
var color = this.toLowerCase();
if (reg.test(color)) {
// 如果隻有三位的值,需變成六位,如:#fff => #ffffff
if (color.length === 4) {
var colorNew = "#";
for (var i = 1; i < 4; i += 1) {
colorNew += color.slice(i, i + 1).concat(color.slice(i, i + 1));
}
color = colorNew;
}
// 處理六位的顔色值,轉為RGB
var colorChange = [];
for (var i = 1; i < 7; i += 2) {
colorChange.push(parseInt("0x" + color.slice(i, i + 2)));
}
return "RGB(" + colorChange.join(",") + ")";
} else {
return color;
}
};
使用方式
"#fff".colorRgb(); // rgb(255,255,255)
"#ffffff".colorRgb(); // rgb(255,255,255)
版權聲明:本文為CSDN部落客「mossbaoo」的原創文章,遵循 CC 4.0 BY-SA 版權協定,轉載請附上原文出處連結及本聲明。
原文連結:https://blog.csdn.net/mossbaoo/article/details/93484635