Javascript 使用正则表达式替换线性渐变百分比
这是我第一次使用正则表达式,我想将第二个rgb百分比从10%替换为30%。例如Javascript 使用正则表达式替换线性渐变百分比,javascript,regex,Javascript,Regex,这是我第一次使用正则表达式,我想将第二个rgb百分比从10%替换为30%。例如rgb(251,188,5)10%到rgb(251,188,5)30% 我试着在网上搜索,但找不到我真正需要的东西。下面是我的测试代码,我只能得到rgb(251,188,5),我如何才能包括10%来替换它?或者直接访问10%的数据,并将其替换为30% 更改前: linear-gradient(rgb(251, 188, 5), rgb(251, 188, 5) 10%, rgb(223, 223, 223) 0%, r
rgb(251,188,5)10%
到rgb(251,188,5)30%
我试着在网上搜索,但找不到我真正需要的东西。下面是我的测试代码,我只能得到rgb(251,188,5)
,我如何才能包括10%
来替换它?或者直接访问10%的数据,并将其替换为30%
更改前:
linear-gradient(rgb(251, 188, 5), rgb(251, 188, 5) 10%, rgb(223, 223, 223) 0%, rgb(223, 223, 223) 100%)
预期结果:
linear-gradient(rgb(251, 188, 5), rgb(251, 188, 5) 30%, rgb(223, 223, 223) 0%, rgb(223, 223, 223) 100%)
const r=“线性梯度(rgb(251,188,5)、rgb(251,188,5)10%、rgb(223,223,223)0%、rgb(223,223,223)100%)。替换(/(?您可以使用
.replace(/^(.*\brgb.*\brgb\([^()]*\)\s*)\d+(?:\.\d+)%/,“$130%”)
看
详细信息
^
-字符串的开头
(.*?\brgb.*?\brgb\([^()]*\)\s*)
-第1组($1
):
*?
-除换行符以外的任何零个或多个字符都应尽可能少
\brgb.*?
-字边界和rgb
以及除换行符以外的任何零个或多个字符,尽可能少
\brgb\(
-rgb
全字和(
char
[^()]*
-除(
和)
之外的零个或多个字符
\)
-a)
字符
\s*
-零个或多个空格
\d+(?:\.\d+)
-一个或多个数字,然后是一个可选的
序列和一个或多个数字(对于当前示例不是必需的,但如果数字带有小数部分,则最好使用)
%
-(实际上,这里只是为了确保我们有一个百分比值,可能没有必要)-一个%
字符
JavaScript演示:
console.log(
“线性梯度(rgb(251,188,5),rgb(251,188,5)10%,rgb(223,223,223,223)0%,rgb(223,223,223)100%)。替换(/^(.\brgb..\brgb\([^()]*\)\s*)\d+(?:\.\d+)%/,“$130%”)
)