Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS:从字符串中获取RGBA值_Javascript - Fatal编程技术网

Javascript JS:从字符串中获取RGBA值

Javascript JS:从字符串中获取RGBA值,javascript,Javascript,我正在使用当前的代码,如这里所建议的,从“RGB(0,0,0)”这样的字符串中获取RGB值,但也可以是“RGB(0,0,0096)”,所以现在我还需要获取alpha值 function getRGB(str) { var match = str.match(/rgba?\((\d{1,3}), ?(\d{1,3}), ?(\d{1,3})\)?(?:, ?(\d(?:\.\d?))\))?/); arr = [match[1], match[2], match[3]];

我正在使用当前的代码,如这里所建议的,从“RGB(0,0,0)”这样的字符串中获取RGB值,但也可以是“RGB(0,0,0096)”,所以现在我还需要获取alpha值

function getRGB(str) {
    var match = str.match(/rgba?\((\d{1,3}), ?(\d{1,3}), ?(\d{1,3})\)?(?:, ?(\d(?:\.\d?))\))?/);
    arr = [match[1], match[2], match[3]];
    return arr;
}
我尝试了下面的代码,但它不起作用

function getRGBA(str) {
    var match = str.match(/rgba?\((\d{1,3}), ?(\d{1,3}), ?(\d{1,3}), ?(\d{1,3})\)?(?:, ?(\d(?:\.\d?))\))?/);
    arr = [match[1], match[2], match[3], match[4]];
    return arr;
}

您的原始正则表达式已经允许使用alpha(仔细观察,您会看到四组数字之间带有逗号,其中第四组数字是可选的;还要注意,
rgba
中靠近开头的
a
是可选的,因为后面有
)。您可以通过查看
匹配[4]
来判断是否得到了alpha:

function getRGB(str) {
    var match = str.match(/rgba?\((\d{1,3}), ?(\d{1,3}), ?(\d{1,3})\)?(?:, ?(\d(?:\.\d?))\))?/);
    arr = [match[1], match[2], match[3]];
    if (match[4]) {          // ***
        arr.push(match[4]);  // ***
    }                        // ***
    return arr;
}