我写了一种方法来检查传递的值是否是我可以用于LinearGradient
的颜色。
在LinearGradient上,我只能使用颜色array> = 2
的颜色,而不能使用标识示例颜色"#ccc"
的字符串。
在某些情况下,某些情况下无效:
传递此类型的字符串时
rgb (255, 0, 0)
或rgb (255, 0, 0, 1)
所以我必须创建一个检查它是否为颜色的函数:
#ccc
#cccccc
rgb (255, 0, 0)
rgba (255, 0, 0, 1)
还有一个检查传递的变量是否为数组的函数,如果它不包含颜色的有效值,我将创建一个与该值重复的数组。
代码:
_backgroundColor = color => {
if (
!Array.isArray(color) &&
!/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(color)
)
color = '#1e95cc';
if (Array.isArray(color) && color.length < 2) color = color.concat(color);
else if (!Array.isArray(color)) color = [color, color];
return color;
};