В ежедневном развитии часто используется взаимное преобразование между значениями цветной области в разных форматах. Вот решение.
Кода -копия выглядит следующим образом:
// регулярное выражение шестнадцатеричного значения цвета
var reg = /^#([0-9a-fa-f] {3} | [0-9a-fa-f] {6}) $ /;
/*RGB Color Turning в шестнадцатеричную*//
String.prototype.colorhex = function () {
var that = это;
if (/^(rgb | rgb)/. test (that)) {
var Acolor = this.replace (/(?:/(|/) | rgb | rgb)*/g, ""). Split (",");
var strhex = "#";
for (var i = 0; i <acolor.length; i ++) {
var hex = число (acolor) .toString (16);
if (hex === "0") {
HEX += HEX;
}
strhex += hex;
}
if (strhex.length! == 7) {
strHex = это;
}
вернуть StrHex;
} else if (reg.test (that)) {
var anum = this.replace (/#/, ""). Split ("");
if (anum.length === 6) {
вернуть это;
} else if (anum.length === 3) {
var numHex = "#";
for (var i = 0; i <anum.length; i+= 1) {
numHex += (anum +anum);
}
вернуть NumHex;
}
}еще{
вернуть это;
}};
/*Преобразовать шестнадцатеричный цвет в формат RGB*/
String.prototype.colorrgb = function () {
var scolor = this.tolowercase ();
if (scolor && reg.test (scolor)) {
if (scolor.length === 4) {
var scolornew = "#";
для (var i = 1; i <4; i+= 1) {
scolornew+= scolor.slice (i, i+1) .concat (scolor.slice (i, i+1));
}
Scolor = Scolornew;
}
// обрабатывать шестизначные значения цвета
var scolorchange = [];
для (var i = 1; i <7; i+= 2) {
scolorchange.push (parseint ("0x"+scolor.slice (i, i+2)));
}
вернуть "rgb (" + scolorchange.join (",") + ")";
}еще{
вернуть Сколор;
}};
Используйте метод преобразования цвета:
Кода -копия выглядит следующим образом:
ar srgb = "rgb (23, 245, 56)", shex = "#34538b";
var shexcolor = srgb.colorhex ();
var srgbcolor = shex.colorrgb ();