Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用正则表达式替换线性渐变百分比_Javascript_Regex - Fatal编程技术网

Javascript 使用正则表达式替换线性渐变百分比

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百分比从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%, 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%”)
)