将 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=0){ str+=(m<16?'0'+m.toString(16):m.toString(16)); }else{ return sRGB; } } return str; } }console.log(rgb2hex('rgb(255, 10, 255)')); //#ff0aff
参考链接: