function convertToHexColor(hexString) { if (hexString.indexOf('rgb') != -1) { // 使用正则表达式提取红、绿和蓝通道的十进制值 const match = rgbColor.match(/^rgb\((\d+), (\d+), (\d+)\)$/); if (!match) { // 如果输入的不是有效的 RGB 格式,则返回空字符串或其他错误处理 return ''; } // 提取十进制值 const red = parseInt(match[1], 10); const green = parseInt(match[2], 10); const blue = parseInt(match[3], 10); // 将十进制值转换为两位数的十六进制值并拼接 const hexRed = red.toString(16).padStart(2, '0'); const hexGreen = green.toString(16).padStart(2, '0'); const hexBlue = blue.toString(16).padStart(2, '0'); // 返回 #RRGGBB 格式的字符串 return `#${hexRed}${hexGreen}${hexBlue}`; } else if (hexString.indexOf('#') != -1) { // 移除可能存在的 "#" 符号 hexColor = hexColor.replace(/^#/, ''); // 添加 "0x" 前缀并返回 return `0x${hexColor}`; } else { // 移除可能存在的 "0x" 前缀 hexString = hexString.replace(/^0x/, ''); // 解析红、绿和蓝通道值 const red = parseInt(hexString.substr(0, 2), 16); const green = parseInt(hexString.substr(2, 2), 16); const blue = parseInt(hexString.substr(4, 2), 16); // 转换为 #RRGGBB 格式 const hexColor = `#${red.toString(16).padStart(2, '0')}${green.toString(16).padStart(2, '0')}${blue.toString(16).padStart(2, '0')}`; return hexColor; } }
封装一个颜色转换的js函数
比如:1、rgb转#04c304。2、 #04c304转0x04c304。3、0x04c304转#04c304。可以对颜色进制进行转换。