function colorToRGB(val, opa) {
const pattern = /^(#?)[a-fA-F0-9]{6}$/;
const flag = typeof opa == 'number';
if (!pattern.test(val)) {
return '';
}
let v = val.replace(/#/, '');
let rgbArr = [];
let rgbStr = '';
for (let i=0; i<3; i++) {
let item = v.substring(i*2, i*2+2);
let num = parseInt(item, 16);
rgbArr.push(num);
}
rgbStr = rgbArr.join();
rgbStr = 'rgb' + (flag ? 'a': '') + '(' + rgbStr + (flag ? ',' + opa : '')+ ')';
return rgbStr;
}
const color1 = colorToRGB('#8C13FF');
const color2 = colorToRGB('#8C13FF', .8);
console.log(color1,color2);