일일 개발에서는 다른 형식의 컬러 도메인 값 간의 상호 변환이 종종 사용됩니다. 다음은 해결책입니다.
코드 사본은 다음과 같습니다.
// 16 진수 색상 값의 정규 표현
var reg = /^#([0-9a-fa-f] {3} | [0-9a-fa-f] {6}) $ /;
/*RGB 16 진수로 변환*/
String.prototype.colorHex = function () {
var that = this;
if (/^(rgb | rgb)/. test (that)) {
var acolor = that.replace (/(? :/(|/) | rgb | rgb)*/g, ""). split ( ",");
var strhex = "#";
for (var i = 0; i <acolor.length; i ++) {
var hex = 숫자 (acolor) .tostring (16);
if (hex === "0") {
16 진 += 16 진;
}
strhex += 16 진;
}
if (strhex.length! == 7) {
strhex = 그;
}
Return StrHex;
} else if (reg.test (that)) {
var anum = that.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 = "#";
for (var i = 1; i <4; i+= 1) {
scolornew+= scolor.slice (i, i+1) .concat (scolor.slice (i, i+1));
}
Scolor = Scolornew;
}
// 6 자리 색상 값을 처리합니다
var scolorchange = [];
for (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 ();