Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.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 带有rgb()的正则表达式_Javascript_Regex_Rgb - Fatal编程技术网

Javascript 带有rgb()的正则表达式

Javascript 带有rgb()的正则表达式,javascript,regex,rgb,Javascript,Regex,Rgb,我刚刚编写了以下正则表达式来捕获rgb()声明中的各种空白错误。它们是捕获相同模式的更简洁的方法吗 /( | )*r( | )*g( | )*b( | )*\(( | )*[0-9]+( | )*,( | )*[0-9]+( | )*,( | )*[0-9]+( | )*,*( | )*\)( | )*;*( | )*/g 上述正则表达式捕获了所有这些声明: rgb(255, 240, 0); rgb(0,0, 0) rgb ( 0,12,0) r gb(12,24,26 )

我刚刚编写了以下正则表达式来捕获
rgb()
声明中的各种空白错误。它们是捕获相同模式的更简洁的方法吗

/( |    )*r( |  )*g( |  )*b( |  )*\(( | )*[0-9]+( | )*,( |  )*[0-9]+( | )*,( |  )*[0-9]+( | )*,*( | )*\)( | )*;*( | )*/g
上述正则表达式捕获了所有这些声明:

rgb(255, 240, 0);
rgb(0,0, 0)
rgb (  0,12,0)
r gb(12,24,26 ) ;

与其尝试匹配所有未通过的情况,我将只使用以下单一模式作为您期望的格式,不包含空格:

rgb\([0-9]+,[0-9]+,[0-9]+\)
如果您还想声明数字都在0到255之间,那么我们可以将上述内容修改为:

rgb\((1?[0-9]{1,2}|2[0-4][0-9]|25[0-5]),(1?[0-9]{1,2}|2[0-4][0-9]|25[0-5]),(1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])\)
代码示例:

var invalid1=“rgb(255,240,0)”;
var invalid2=“rgb(0,0,0)”;
var invalid3=“rgb(0,12,0)”;
var invalid4=“r gb(12,24,26)”;
var valid=“rgb(10,20,30)”;
console.log(/^rgb\([0-9]+,[0-9]+,[0-9]+\)$/.test(invalid1));
console.log(/^rgb\([0-9]+,[0-9]+,[0-9]+\)$/.test(invalid2));
console.log(/^rgb\([0-9]+,[0-9]+,[0-9]+\)$/.test(invalid3));
console.log(/^rgb\([0-9]+,[0-9]+,[0-9]+\)$/.test(invalid4));

console.log(/^rgb\([0-9]+,[0-9]+,[0-9]+\)$/.test(有效))您的正则表达式看起来多余。我会用这样的方法:

r\s*g\s*b\s*\(\s*\d{1,3}\s*(?:,\s*\d{1,3}\s*){2}\)\s*

注意如何通过
\s*
匹配空格,以及如何通过
\d
匹配数字

要将条目限制在0-255之间,需要进行以下自适应:

r\s*g\s*b\s*(\s*(?:1{1,2}2[0-4]\d{1,2}25[0-5])\s*(?:,\s*(?:1{1,2}2[0-4]\d{25[0-5])\s*){2}\s*

请注意,
\d
表示所有十位数字的集合。如果需要这些数字的子集,我们需要在字符集中手动使用它们,而不使用
\d


(|)*
可以简化为`*`。将
\s
用于空格WIW,
[0-9]
可以是JavaScript正则表达式中的
\d
。可能还会在数字周围抛出一些
\s*
(任意数量的空格):-)谢谢你,辛科特。我将使用您建议的修改版本:
rgb\(\s*\d{1,3}\s*(?:,\s*\d{1,3}\s*){2}\)
,因为它捕获了我需要的一切。如果我想将数字范围限制为
255
,如何利用您提出的
d
标志?