颜色字符串转换

将 rgb 颜色字符串转换为十六进制的形式,如 rgb(255, 255, 255) 转为 #ffffff
1. rgb 中每个 , 后面的空格数量不固定
2. 十六进制表达式使用六位小写字母
3. 如果输入不符合 rgb 格式,返回原始输入

示例1

输入

'rgb(255, 255, 255)'

输出

#ffffff

function rgb2hex(sRGB) {
    var regexp=/^rgb(d+\,s*d+\,s*d+)$/;
    if(!regexp.test(sRGB)){
       return sRGB;
    }else{
        var pattern = /d+/g;
        var matches = sRGB.match(pattern);
        // console.log(matches);
        var str = "#";
        for(var i=0; i<matches.length; i++){
            var m = Number(matches[i]);
            // console.log(m.toString(16));
            if(m<=255 && m>=0){
              str+=(m<16?'0'+m.toString(16):m.toString(16));  
          }else{
            return sRGB;
          }    
        } 
        return str;  
    }    
}
console.log(rgb2hex('rgb(255, 10, 255)'));   //#ff0aff

参考链接: 牛客网-颜色字符串转换

原文地址:https://www.cnblogs.com/guorange/p/7163203.html