Javascript 将 “rgb(xx,xx,xx)” 与正则表达式 regEx 匹配

Javascript matching "rgb(xx,xx,xx)" with regular expression regEx?

本文关键字:xx 正则表达式 regEx 匹配 rgb Javascript      更新时间:2023-09-26

如果有人能指出我正确的方向,我将不胜感激。我有一个数组"cArr",在这个数组中我有 2 个元素。我想做的是匹配"rgb(xx,xx,xx)"并将其推送到数组"rgbArr";我遇到的问题是正则表达式。

这是我的代码:

var cArr = ["id0{shape:round,rgb(24,23,12)}","id1{shape:long,weight:heavy,rgb(20,20,20)}","id2{shape:elongated,weigth:light,rgb(15,24,8)}"];

for(var i=cArr.length -1; i>=0; i--)
{
  if(cArr[i].match(matchColors))
  {
    rgbArr.push(cArr[i]);
    break;
  }
}
console.log(rgbArr);

我今天一直在努力解决这个问题,并且对这个问题有一个稍微简化的解决方案,它使用稍微不同的正则表达式和JavaScripts"match"函数(我已将其包装在一个函数中,以便我们可以根据需要重用此功能):

function parseRGB ( string ) {
    var rgbRegex = /(rgb'([^)]*'))/gi;
    var rgbArray = string.match(rgbRegex); 
    return rgbArray;
}

现在只需使用要检查的值调用函数。

例如
parseRGB( '-moz-linear-gradient( top, rgb(68, 68, 68), rgb(153, 153, 153))' );

这将返回以下数组:

[ "rgb(68, 68, 68)", "rgb(153, 153, 153)" ]   

需要注意的几点:

  • 如果未找到 RGB 匹配项,则此函数将返回 null。
  • JavaScripts匹配字符串函数将自动将所有出现的情况放入一个数组中。它可以将正则表达式作为参数。
  • 这可以处理多个 rgb 值(如果它们存在于要检查的字符串中)。

希望这对某人有所帮助。

请澄清您的问题(似乎是我上面的评论),暂时尝试这样的事情。(但这并没有给你第一个元素中的多种 rgb 颜色......

var matchColors=/.*?(rgb'([^)]*')).*/;
var cArr = ["id0{shape:round,rgb(24,23,12)},id1{shape:long,weight:heavy,rgb(20,20,20)}","id2{shape:elongated,weigth:light,rgb(15,24,8)}","sdf"];
var rgbArr=[];
for(var i=cArr.length -1; i>=0; i--) {
    if(cArr[i].match(matchColors)) {
        var x = cArr[i].replace(matchColors,"$1");
        rgbArr.push(x);
//      break;
    }
}
console.log(rgbArr);​