Javascript 将 “rgb(xx,xx,xx)” 与正则表达式 regEx 匹配
Javascript matching "rgb(xx,xx,xx)" with regular expression regEx?
如果有人能指出我正确的方向,我将不胜感激。我有一个数组"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);
相关文章:
- java.net和javascript之间正则表达式的差异
- Grunt匹配正则表达式
- 不同浏览器中的空白字符正则表达式行为
- 正则表达式在字符串中找到base64
- 子字符串/正则表达式以获取字符串中保存的 SRC 值
- 调用正则表达式匹配的函数
- 使用正则表达式评估电子邮件地址时出现性能问题
- Javascript 正则表达式 : ^[^/s/]+[a-z]{1,}[0-9]*[-_]*[^/][
- JavaScript正则表达式文本与RegExp对象
- 正则表达式只允许 x 个整数
- 使用正则表达式将输入格式设置为单字符逗号、单字符逗号等
- 改进用于验证付款金额的正则表达式
- 正则表达式与数字中的第二个点匹配
- 键按正则表达式以查找具有负值的小数
- 一个正则表达式,用于从JS中的HTML标记中删除id、样式和类属性
- 将po-box javascript正则表达式转换为c#regex
- XXXXXX的正则表达式.XX格式的数字
- Javascript 将 “rgb(xx,xx,xx)” 与正则表达式 regEx 匹配
- 两个整数,三个小数的正则表达式(XX.XXX)
- JavaScript使用正则表达式查找单词"19XX"或“;18 xx"长串的