颜色字符串转换

描述

将 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 }

 

posted @ 2021-06-12 15:14  icyyyy  阅读(304)  评论(0)    收藏  举报