javascript - 自动检测格式 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)
解决方案
您可以立即准备一个带有 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')
推荐阅读
- r - dplyr::complete/fill 时间序列,但仅限于有限的时间段
- ios - Flutter iOS - 运行脚本:xcode_backend.sh 不允许操作
- python - 通过数组中的特定值求和
- java - 如何从流中仅提取一个允许的元素?
- elasticsearch - 如何仅在elasticsearch中的嵌套对象数组中搜索最近插入的对象(通过日期字段知道)
- mysql - SQL查找最大计数
- com - mt.exe -replacements:未记录免注册 COM 组件的 xml 文件结构
- javascript - 如何设置类似 Instagram 的路线?本地主机:3000/用户名
- python - 在 Python 3.x 中转义特殊字符
- python - 用户创建指定类的对象