如何从rgb/rgba字符串中获取红色绿色和蓝色值?

Jai*_*Jai 1 javascript regex jquery

如果我有字符串,我rgba(111,222,333,0.5)怎么能从字符串中提取单个颜色,即

red => 111
green => 222
blue => 333
opacity => 0.5
Run Code Online (Sandbox Code Playgroud)

我希望能够使用一个干净整洁的解决方案,所以我假设一个正则表达式是最好的?

Dav*_*mas 8

我会为可预测的字符串避免使用正则表达式,并建议:

var colorString = "rgba(111,222,333,0.5)",
    colorsOnly = colorString.substring(colorString.indexOf('(') + 1, colorString.lastIndexOf(')')).split(/,\s*/),
    red = colorsOnly[0],
    green = colorsOnly[1],
    blue = colorsOnly[2],
    opacity = colorsOnly[3];
Run Code Online (Sandbox Code Playgroud)

JS小提琴演示.

或者,假设您想要返回一个对象:

var colorString = "rgba(111,222,333,0.5)",
    colorsOnly = colorString.substring(colorString.indexOf('(') + 1, colorString.lastIndexOf(')')).split(/,\s*/),
    components = {};
components.red = colorsOnly[0];
components.green = colorsOnly[1];
components.blue = colorsOnly[2];
components.opacity = colorsOnly[3];

console.log(colorsOnly, components);?
Run Code Online (Sandbox Code Playgroud)

JS小提琴演示.