首先正则验证是否是有效rgb,无效则直接返回。然后再全局正则匹配数字,最后转成16进制输出即可。
function rgb2hex(sRGB) {
let p = /rgb\((\d{1,3}\,\s*){2}\d{1,3}\)/;
if(!p.test(sRGB)){return sRGB}
let nums = sRGB.match(/\d{1,3}/g);
let res = '#';
for (const x of nums){
let tmp=parseInt(x).toString(16);
res += tmp.length==1?'0'+tmp:tmp;
}
return res;
}
京公网安备 11010502036488号