将线性渐变分割为对象

Beh*_*zad 6 javascript css split object linear-gradients

我想将linear-gradient值拆分为object带键和值.

我有这个:

linear-gradient(10deg,#111,rgba(111,111,11,0.4),rgba(255,255,25,0.1))
Run Code Online (Sandbox Code Playgroud)

我希望这样:

linear-gradient: {
  angle: '10deg',
  color1: '#111',
  color2: 'rgba(111,11,11,0.4)',
  color3: 'rgba(255,255,25,0.1)',
}
Run Code Online (Sandbox Code Playgroud)

编辑:我尝试了我的代码没有成功:

var str = 'linear-gradient(10deg,#111,rgba(111,111,11,0.4),rgba(255,255,25,0.1))';
str = str.match("gradient\((.*)\)");
str = str[1].split(',');
console.log( str );
Run Code Online (Sandbox Code Playgroud)

Beh*_*zad 2

我们Regular expression可以定义我们想要从字符串中得到哪些部分。

// Define string
var str = 'linear-gradient(to left top, #F0F calc(30% - 6px), hsl(100, 100%, 25%) 75%, yellow)';

// Get string between first ( and last )
str = str.substring(str.indexOf('(') + 1, str.lastIndexOf(')'));

// Finally with regex we can get each parts separatelly
console.log( str.split( /,(?![^(]*\))(?![^"']*["'](?:[^"']*["'][^"']*["'])*[^"']*$)/ ) );
Run Code Online (Sandbox Code Playgroud)

输出将是:

(4) [Array]
  "to left top"
  "#F0F calc(30% - 6px)"
  "hsl(100, 100%, 25%) 75%"
  "yellow"
Run Code Online (Sandbox Code Playgroud)