如何从包含线性渐变定义的字符串中提取色标值?

2022-08-02 00:00:00 string regex split javascript substring

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

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

只提取数字也行,我只需要一些可以处理的东西。

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


解决方案

您可以使用String#match

数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假">
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);

正则表达式说明:

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

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

相关文章