天天看點

html rgb轉換16進制js,JS實作顔色值格式轉換 rgb和十六進制的轉換

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