反应本机检查传递的参数是否为有效颜色

时间:2018-12-20 16:28:56

标签: javascript reactjs react-native

我写了一种方法来检查传递的值是否是我可以用于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;
      };

0 个答案:

没有答案