简洁、易读
1. 先判断是否匹配格式
2. parseInt('255 ', 10) 是等于255的,空格不用处理
3. 注意转化16进制字符需要补全2位
function rgb2hex(sRGB) {
let reg = /^rgb\(\d+,\d+,\d+\)$/;
if (!reg.test(sRGB)) return sRGB;
sRGB = sRGB.slice(sRGB.indexOf('(') + 1, -1);
let arr = sRGB.split(',');
let ans = '#';
for (let v of arr) {
let n = parseInt(v, 10);
if (n < 0 || n > 255) return sRGB;
ans += ('0' + n.toString(16)).slice(-2);
}
return ans;
}



京公网安备 11010502036488号