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。可以对颜色进制进行转换。
