/** * 格式化颜色 * @param value 颜色值 #aaa格式或rgb格式 * @returns 颜色值 */ export function formatColor(value: string): string { const rgbReg = /((2[0-4]\\d|25[0-5]|[01]?[0-9]?[0-9]?)[\\s]*,){2}[\\s]*(2[0-4]\\d|25[0-5]|[0-1]?[0-9]?[0-9])$/ if (value.startsWith('#')) { // #号开头的颜色值 return value } else if (rgbReg.test(value)) { // 数字开头的颜色值 return `rgb(${value})` } else { return '' } } /** * 获取某颜色的透明度颜色 * @param color 颜色 * @param alpha 透明度 * @returns 透明度颜色 */ export function getAlphaColor(color: string, alpha: number): string { const rgbReg = /((2[0-4]\\d|25[0-5]|[01]?[0-9]?[0-9]?)[\\s]*,){2}[\\s]*(2[0-4]\\d|25[0-5]|[0-1]?[0-9]?[0-9])$/ if (color.startsWith('#')) { // #号开头的颜色值 let alpha2 = Math.floor(alpha * 255) alpha2 = alpha > 255 ? 255 : alpha2 return color + alpha2.toString(16) // 转换为16进制 } else if (rgbReg.test(color)) { // 数字开头的颜色值 return `rgba(${color}, ${alpha})` } else { return '' } }