是否可以使用唯一的正则表达式正确分割background-image
线性渐变定义,即:
linear-gradient(hsl(200, 83%, 64%), hsl(200, 81%, 59%) 32%, rgb(22, 22, 22) 81%, red)
我正在寻找的是获得这样的多个比赛(在这种情况下是4场比赛):
$1:hsl(200, 83%, 64%)
$2:
$1:hsl(200, 81%, 59%)
$2:32%
$1:rgb(22, 22, 22)
$2:81%
$1:red
$2:
我正在尝试类似的事情:
(hsl\([^\)]*\))\s*(\d+%)?
但这只适用于hsl,必须有一些聪明的方法来减少具体的
答案 0 :(得分:1)
CSS中引用了许多颜色格式。包括
‹Name›
(例如“红色”)#rgb
rgb(r, g, b)
(每个号码0-255)rgb(r%, g%, b%)
hsl(...)
(如Q中所述)然后hsla
和rgba
添加Alpha通道。最后是currentColor
关键字。
最简单的方法是为每个要支持的构建一个正则表达式,然后用交替(|
)分隔。首先:
#[0-9a-fA-F]{3,6}|rgb ?\([ 0-9.%,]+?\)
应该涵盖十六进制和(两个)rgb
形式。但它也会匹配无效的表达式(有效只会更复杂)。
最后,不要忘记linear-gradient
:
repeating-linear-gradient
。