描述
将 rgb 颜色字符串转换为十六进制的形式,如 rgb(255, 255, 255) 转为 #ffffff
1. rgb 中每个 , 后面的空格数量不固定
2. 十六进制表达式使用六位小写字母
3. 如果输入不符合 rgb 格式,返回原始输入
示例1
输入:'rgb(255, 255, 255)'
输出:#ffffff
1 function rgb2hex(sRGB) { 2 let re = /rgb\((\d+),\s*(\d+),\s*(\d+)\)/, 3 ret = sRGB.match(re), 4 head = "#"; 5 if(!ret) return sRGB; 6 else { 7 for(let i = 1; i < ret.length; i++) { 8 let x = parseInt(ret[i]); 9 if(x >= 0 && x <= 255) { 10 head += x < 16 ? '0' + x.toString(16) : x.toString(16); 11 } else return sRGB; 12 } 13 } 14 return head 15 }