首页 > 解决方案 > 自动检测格式 HEX 到 RGB 或 RGB 到 HEX

问题描述

编写一个将 HEX 转换为 RGB 的函数。

然后使该功能自动检测格式

这样,如果您输入 HEX 颜色格式,它将返回 RGB

如果您输入 RGB 颜色格式,它会返回 HEX。

例如:

输入“#0033ff”输出rgb(0,15,255)

输入(0,15,255)输出“#0033ff”

尝试了以下函数来创建结果:

   function rgbToHexAndHextorgb(input1, input2, input3) {
    if(!input2){
	    //HEX
	    let hex = input1;
	     var shorthandRegex = input1;
         input1 = input1.replace(shorthandRegex, function(m, r, g, b) {
          return r + r + g + g + b + b;
        });

    var result = [];
    result.push(input1[2]+input1[3]);
    result.push(input1[4]+input1[5]);
    result.push(input1[6]+input1[7]);

    return result ? {
    r: parseInt(result[1], 16),
    g: parseInt(result[2], 16),
    b: parseInt(result[3], 16)
} : null;
}
else
	{
     //RGB
   let r = input1;
   let g = input2;
   let b = input3;
   const componentToHex=(c)=>{
	   var hex2 = c.toString(16);
       return hex2.length == 1 ? "0" + hex2 : hex2;
   }
   return "#" + componentToHex(r) + componentToHex(g) + componentToHex(b);
	
   }
 }
   rgbToHexAndHextorgb(0, 51, 255) ;//"#0033ff"
   rgbToHexAndHextorgb("#0033ff");//(0,51,255)

标签: javascript

解决方案


您可以立即准备一个带有 3 个参数的函数。

function rgbToHexAndHextorgb(input1, input2, input3) {
    if(!input2) {
        // HEX
        console.log('hex');
        let hex = input1;
    }
    else {
        // RGB
        console.log('rgb')
        let red = input1;
        let green = input2;
        let blue = input3;
    }
}

// Testing
rgbToHexAndHextorgb(1,2,3)
rgbToHexAndHextorgb('#000000')

推荐阅读