Я пытаюсь создать функцию, которая будет автоматически принимать пользовательский ввод и проверять, в каком формате он находится, и исходя из того, что он выполняет определенную функцию (RGBToHex или hexToRGB). Внутри моей функции через регулярное выражение. Я хочу проверить 4 di git ввода и 7 di git ввода пользователя, но, скорее всего, это неправильный способ, есть мысли по этому поводу?
function hexToRGB(h) {
let r = 0, g = 0, b = 0;
// 3 digits
if (h.length == 4) {
r = "0x" + h[1] + h[1];
g = "0x" + h[2] + h[2];
b = "0x" + h[3] + h[3];
// 6 digits
} else if (h.length == 7) {
r = "0x" + h[1] + h[2];
g = "0x" + h[3] + h[4];
b = "0x" + h[5] + h[6];
}
return "rgb("+ +r + "," + +g + "," + +b + ")"; //variables are prepended with + to convert string back to numbers
}
//hexToRGB('2222')
//hexToRGB('4616625')
//debugger;
function RGBToHex(r,g,b) {
r = r.toString(16);
g = g.toString(16);
b = b.toString(16);
if(r.length == 1) {
"0" + r;
}
else if (g.length == 1) {
"0" + g;
}
else {
"0" + b;
}
return "#" + r + g + b;
}
//RGBToHex(3, 82, 252)
function myFunction() {
let input = prompt("Please enter the digit: ");
var re = /[0-9A-Fa-f]{4||7}/g;
if(re.test(input)) {
hexToRGB(input);
}
else {
RGBToHex(input);
}
}
myFunction();