-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathquestion3.js
41 lines (31 loc) · 1.24 KB
/
question3.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
function convertColor(color) {
var convertedColor;
if (color[0] === '#') {
convertedColor = convertHexToRgb(color);
} else if (color[0] === '(') {
convertedColor = convertRgbToHex(color);
} else {
return "Error ! \nPlease Enter A Proper Input. \nHex starts with an octothorpe and has 6 trailing numbers, rgb is enclsed in paranthesis and seperated with commas. ";
}
function convertHexToRgb(color) {
var hexNumber = color.slice(1);
var r = parseInt(hexNumber.substring(0, 2), 16);
var g = parseInt(hexNumber.substring(2, 4), 16);
var b = parseInt(hexNumber.substring(4, 6), 16);
var a = hexNumber.length === 8 ? Math.round(parseInt(hexNumber.substring(6, 8), 16) / 255) : '';
return "(" + r + "," + g + "," + b + (a !== '' ? ',' : '') + a + ")";
}
function convertRgbToHex(color) {
color = color.slice(1, -1).split(',');
var r = color[0];
var g = color[1];
var b = color[2];
var a = color.length === 4 ? Math.round(color[3] * 255) : '';
return "#" + numberToHex(r) + numberToHex(g) + numberToHex(b) + (color.length === 4 ? numberToHex(a) : '');
}
function numberToHex(number) {
var numberInHex = Number(number).toString(16);
return numberInHex.length == 1 ? "0" + numberInHex : numberInHex;
}
return convertedColor;
}