将“rgb(255, 255, 255)”格式转换为 rgb

Converting "rgb(255, 255, 255)" format to rgb

本文关键字:rgb 格式 转换      更新时间:2023-09-26

我想知道如何将"rgb(255, 255, 255)"字符串格式转换为 rgb,例如:

var rgb = convert("rgb(255, 255, 255)");

并像这样使用它:

this.r = rgb.r;
this.g = rgb.g;
this.b = rgb.b;

到目前为止,我发现的是如何从十六进制转换为 rgb。

谢谢

我能找到的更简单的方法:

var convert = function(rgb)
{    
    var s = rgb.replace(/[^'d's]/g, '').split(' ');
    return {
        r: s[0],
        g: s[1],
        b: s[2]
    };
}
console.log(convert("rgb(255, 255, 255)"));

小提琴。

这不会转换任何东西。只需提取字符串的信息并放入对象中即可。

更新:

对于@minmaxavg的建议,要使其与百分比值一起使用,只需对正则表达式稍作更改:

/[^'d's%]/g

您可以使用简单的正则表达式来rgb({number}, {number}, {number}):

function convertRgb(rgb) {
    // results contains e.g. ["rgb(255, 255, 255)", "255", "255", "255"]
    var results = /^rgb'(('d{1,3}), ('d{1,3}), ('d{1,3})')$/.exec(rgb);
    return {
        r: results[1],
        g: results[2],
        b: results[3],
    };
}
var rgb = convertRgb("rgb(255, 255, 255)");
console.dir(rgb);