抄的,但是改进了
function rgb2hex(sRGB) { // 找出每一组,然后替换16进制 let newSRGB = sRGB.replace(/\s+/g, "") let regexp = /^rgb\(([01]\d{0,2}|2[0-5]{2}),([01]\d{0,2}|2[0-5]{2}),([01]\d{0,2}|2[0-5]{2})\)$/ if (!regexp.test(newSRGB)) return sRGB return newSRGB.replace(regexp, (match, p1, p2, p3) => { p1 = toHex(p1) p2 = toHex(p2) p3 = toHex(p3) function toHex(p) { return (+p).toString(16).length === 1 ? '0' + (+p).toString(16) : (+p).toString(16) } return `#${p1}${p2}${p3}` }) }