首页 > 解决方案 > 如何从包含线性渐变定义的字符串中提取颜色停止值?

问题描述

我有一个字符串,其中包含线性渐变的定义...

linear-gradient(90deg, rgba(243,231,231,1), rgba(12,0,0,0.48))

...并且我需要将两个颜色停止值分别分配给一个变量,就像下一个伪代码所示...

const color1 = "rgba(243,231,231,1)";
const color2 = "rgba(12,0,0,0.48)";

仅提取数字也可以,我只需要一些可以使用的东西。

问题是,我不能只计算字符和子字符串,因为我的线性梯度字符串值是动态的并且可能会改变长度,有什么想法吗?

标签: javascriptregexstringsplitsubstring

解决方案


您可以使用String#match.

let str = "linear-gradient(90deg, rgba(243,231,231,1), rgba(12,0,0,0.48))";
let res = str.match(/rgba\(.*?\)/g);
console.log(res);

正则表达式的解释:

在此处输入图像描述

如果您需要同时支持rgband rgba,请使用:

str.match(/rgba?\(.*?\)/g);

推荐阅读