// 题目描述 // 将 rgb 颜色字符串转换为十六进制的形式,如 rgb(255, 255, 255) 转为 #ffffff // 1. rgb 中每个 , 后面的空格数量不固定 // 2. 十六进制表达式使用六位小写字母 // 3. 如果输入不符合 rgb 格式,返回原始输入 function rgb2hex(sRGB) { var flag var res = '' sRGB.replace(/(\d+)/g, function (num) { if (arguments.length) { res += ('0' + parseInt(num).toString(16)).slice(-2) flag = true } else { flag = false } }) return flag ? '#' + res : sRGB } console.log(rgb2hex('rgb(255, 255, 0)')) console.log(rgb2hex('abc'))