WARNING
此工具仅适用于客户端,请勿在服务器环境中使用。
简单的颜色验证函数
export function isValidColor(color: string) {
let otpNode = new Option()
otpNode.style.color = color
return !!otpNode.style.color
}
使用方法
// 有效颜色
isValidColor('purple') // true
isValidColor('burlywood') // true
isValidColor('lightsalmon') // true
isValidColor('rgb(255, 255, 255)') // true
isValidColor('rgba(255, 255, 255, .5)') // true
isValidColor('#ccc') // true
isValidColor('hsl(100, 0%, 18%)') // true
// 无效颜色
isValidColor('not-a-color-name') // false
isValidColor('dark gray') // false。应为'darkgray'
isValidColor('rgb(255, 255, 255, 1, 1)') // false
isValidColor('#ccczzz') // false
注意事项
像unset
、initial
、inherit
、currentcolor
、transparent
这样的字符串也是有效值,所以如果你想排除这些字符串,只需稍微修改函数:
export function isValidColor(color: string) {
let otpNode = new Option()
otpNode.style.color = color
return !!otpNode.style.color && !/(unset|initial|inherit|currentcolor|transparent)/i.test(color)
}
isValidColor('rgb(-1, 255, 255)') // true
isValidColor('none') // false
isValidColor('initial') // false
isValidColor('gray') // true