Javascript JS:从字符串中获取RGBA值
我正在使用当前的代码,如这里所建议的,从“RGB(0,0,0)”这样的字符串中获取RGB值,但也可以是“RGB(0,0,0096)”,所以现在我还需要获取alpha值Javascript JS:从字符串中获取RGBA值,javascript,Javascript,我正在使用当前的代码,如这里所建议的,从“RGB(0,0,0)”这样的字符串中获取RGB值,但也可以是“RGB(0,0,0096)”,所以现在我还需要获取alpha值 function getRGB(str) { var match = str.match(/rgba?\((\d{1,3}), ?(\d{1,3}), ?(\d{1,3})\)?(?:, ?(\d(?:\.\d?))\))?/); arr = [match[1], match[2], match[3]];
function getRGB(str) {
var match = str.match(/rgba?\((\d{1,3}), ?(\d{1,3}), ?(\d{1,3})\)?(?:, ?(\d(?:\.\d?))\))?/);
arr = [match[1], match[2], match[3]];
return arr;
}
我尝试了下面的代码,但它不起作用
function getRGBA(str) {
var match = str.match(/rgba?\((\d{1,3}), ?(\d{1,3}), ?(\d{1,3}), ?(\d{1,3})\)?(?:, ?(\d(?:\.\d?))\))?/);
arr = [match[1], match[2], match[3], match[4]];
return arr;
}
您的原始正则表达式已经允许使用alpha(仔细观察,您会看到四组数字之间带有逗号,其中第四组数字是可选的;还要注意,
rgba
中靠近开头的a
是可选的,因为后面有?
)。您可以通过查看匹配[4]
来判断是否得到了alpha:
function getRGB(str) {
var match = str.match(/rgba?\((\d{1,3}), ?(\d{1,3}), ?(\d{1,3})\)?(?:, ?(\d(?:\.\d?))\))?/);
arr = [match[1], match[2], match[3]];
if (match[4]) { // ***
arr.push(match[4]); // ***
} // ***
return arr;
}