javascript - 将线性渐变拆分为一个对象

标签 javascript css object split linear-gradients

<分区>

我想将 linear-gradient 值拆分为具有键和值的 object

我有这个:

linear-gradient(10deg,#111,rgba(111,111,11,0.4),rgba(255,255,25,0.1))

我想要这样:

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

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

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 );

最佳答案

使用正则表达式,我们可以定义我们想要的字符串部分。

// 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( /,(?![^(]*\))(?![^"']*["'](?:[^"']*["'][^"']*["'])*[^"']*$)/ ) );

输出将是:

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

关于javascript - 将线性渐变拆分为一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47786500/

相关文章:

c++ - 有没有更好的方法可以遍历数组中的每个元素而不使用索引的for循环?

javascript - 如何正确调用嵌套在 waterfall 函数中的异步 forEachOf 函数

javascript - 如何获取img alt标签并以html形式显示在图像下?

JavaScript 图片缩放——圆形边框

javascript - 更改 'greyed-out-ness' 的 html Bootstrap 按钮和 javascript 的级别

javascript - 这在 js "xin || {}"中有什么作用?

javascript - FullCalendar eventDrop 应该是全天

javascript - 我想在特定时间后加载另一个 HTML 页面

javascript - Ajax post返回数据到地址栏

javascript - 查找对象数组中对象的索引