regex en javascript pour correspondre à la fois RVB ou RVBA

Actuellement, j'ai cette expression qui correspond à une RVB chaîne. J'ai besoin d'elle améliorée de sorte qu'il est suffisamment robuste pour faire correspondre les couleurs RVB ou RVBA.

rgbRegex = /^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/; //matches RGB

http://jsfiddle.net/YxU2m/

var rgbString =  "rgb(0, 70, 255)";
var RGBAString = "rgba(0, 70, 255, 0.5)";

var rgbRegex = /^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/;
//need help on this regex
//I figure it needs to be ^rgba?, and then also an optional clause to handle the opacity

var partsRGB = rgbString.match(rgbRegex);
var partsRGBA = RGBAString.match(rgbRegex);

console.log(partsRGB); //["rgb(0, 70, 255)", "0", "70", "255"]
console.log(partsRGBA); //null. I want ["rgb(0, 70, 255, 0.5)", "0", "70", "255", "0.5"] 
stackoverflow.com/questions/638948/...
Qui va avoir beaucoup de faux négatifs. Les espaces sont autorisés avant les virgules et les valeurs en pourcentage sont autorisés au lieu de décimales.

OriginalL'auteur fortuneRice | 2011-09-25