我有以下检测颜色是HEX、RGB还是HSL:
function detectColorFormat(color) {
if (color.startsWith('#')) {
return 'HEX';
} else if (color.startsWith('rgb')) {
return 'RGB';
} else if (color.startsWith('hsl')) {
return 'HSL';
}
}
有没有一种方法可以在不必对颜色字符串输入如此具体的情况下实现相同的功能?
例如,我们如何做到这一点:
"ff0" //returns HEX
"#ff0" //returns HEX
"fffF00" // returns HEX
"250 50 10" //returns RGB
"250, 50, 10" //returns RGB
"rgb(250,50,10)" //returns RGB
"10,50%,80%" //returns HSL
如果这包括RGBA格式和,那就更好了
还没有。在未来,你可能会使用CSS类型的对象模型API,但它并没有被广泛使用和完全实现,即使在开始实现它的浏览器中也是如此
目前,您将不得不使用与您的方法类似的方法(也许您可以使用regexp(,但请记住,您也可以在CSS中命名完全有效的颜色值(例如"红色"(。