Javascript 如何将rgb值转换为常规css颜色值?

Javascript 如何将rgb值转换为常规css颜色值?,javascript,rgb,Javascript,Rgb,我正在尝试比较页面上元素的样式。但有一个元素会动态地将其文本颜色更改为红色,但表示为rgb值。另一个元素(与之比较)使用#123456个值。是否有一个转换器可以将rgb转换成数字 例如: #000而不是rgb(0,0,0) 编辑。承蒙 编辑。承蒙人们总是忘记rgb颜色可以表示为百分比和整数 function rgbToHex(rgb){ var i= 0, c, hex= '#', rgb= String(rgb).match(/\d+(\.\d+)?%?/g); whi

我正在尝试比较页面上元素的样式。但有一个元素会动态地将其文本颜色更改为红色,但表示为rgb值。另一个元素(与之比较)使用#123456个值。是否有一个转换器可以将rgb转换成数字

例如:

#000而不是rgb(0,0,0)

编辑。承蒙


编辑。承蒙

人们总是忘记rgb颜色可以表示为百分比和整数

function rgbToHex(rgb){
    var i= 0, c, hex= '#',
    rgb= String(rgb).match(/\d+(\.\d+)?%?/g);
    while(i<3){
        c= rgb[i++];
        if(c.indexOf('%')!= -1){
            c= Math.round(parseFloat(c)*2.55);
        }
        c= (+c).toString(16);
        if(c.length== 1) c= '0'+c;
        hex+= c;
    }
    return hex;
}




alert(rgbtohex('rgb(255,127,0)')+'\n'+
rgbtohex('rgb(100%,50%,0)'));

/*  returned value: 
#ff7f00
#ff7f00
*/
功能rgbToHex(rgb){
变量i=0,c,十六进制='#',
rgb=字符串(rgb).match(/\d+(\.\d+)?%?/g);

然而(i人们总是忘记rgb颜色可以表示为百分比,也可以表示为整数

function rgbToHex(rgb){
    var i= 0, c, hex= '#',
    rgb= String(rgb).match(/\d+(\.\d+)?%?/g);
    while(i<3){
        c= rgb[i++];
        if(c.indexOf('%')!= -1){
            c= Math.round(parseFloat(c)*2.55);
        }
        c= (+c).toString(16);
        if(c.length== 1) c= '0'+c;
        hex+= c;
    }
    return hex;
}




alert(rgbtohex('rgb(255,127,0)')+'\n'+
rgbtohex('rgb(100%,50%,0)'));

/*  returned value: 
#ff7f00
#ff7f00
*/
功能rgbToHex(rgb){
变量i=0,c,十六进制='#',
rgb=字符串(rgb).match(/\d+(\.\d+)?%?/g);

while(iSorry)我的意思是数字不是原来的数字。OP可能意味着rgb(#,#,#,#)vs.0xRRGGBB你能显示你的预期输入/输出吗?对不起,我的意思是数字不是原来的数字。OP可能意味着rgb(#,#,#,#)vs.0xRRGGBB你能显示你的预期输入/输出吗?啊,别客气!)我唯一的建议是更改你的
parseInt()
s to
parseInt(“数字字符串”,10)
只是为了安全。我遇到了一个错误。
alert(colorToHex('rgb(0,0,0));
返回
#0
就是这样。啊,让我来吧!;)我唯一的建议是将
parseInt()
s改为
parseInt(“数字字符串”,10)
为了安全起见。我遇到了一个错误。
警报(colorToHex('rgb(0,0,0));
返回
#0
,就是这样。