[Javascript] rgb(rrr, bbb, ggg) -> HEXDezimal

Schönen guten Tag,
Habe ein kleines Problem mit Javascript und würde gerne eure Hilfe in Anspruch nehmen.

Bei einer Javascriptfunktion bekomme ich als Rückgabewert einen RGB Code im Format “rgb(rrr , ggg, bbb)” also z.B. “rgb(255, 255, 255)” (Selbstverständlich ohne Anführungszeichen, aber mit Leerzeichen).

Nun die Frage die: Wie bekomme ich dies in den üblichen HEXDezimal Code (#XXXXXX)?

Leider sind meine Javascript Kentnisse sehr begrenzt, deswegen hoffe ich auf eure Hilfe.
Vielen Dank schon einmal an die, die sich die Mühe machen mir zu helfen.

Mit freundlichen Grüßen,
Seoson

Die drei Zahlen einzeln extrahieren (Stringfunktionen/reguläre Ausdrücke), explizit in Zahl umwandeln (parseInt), und dann mittels Number.toString ins Hexadezimalsystem konvertieren.

Hatte eigentlich auf eine einfachere Lösung gehofft,

Naja für alle die es interessiert, hier meine frisch geschriebene Funktion:

entfernt!

Jetzt noch ein kleines Problem, die Werte sind nicht immer 3-stellig.

Wie kann ich nun das lösen?

EDIT//
Für mich ist das derzeit nicht ganz so wichtig, weil ich auch Farben benutzen kann die innerhalb des Bereiches liegen, spielt keine Rolle, aber später wäre es vlt. sinnvoll eine vollständige Funktion zu benutzen.

EDIT2//
Habs fast. Nur noch die Convertierungsfunktion überarbieten damit nicht #0 rauskommt.
Mit freundlichen Grüßen,

EDIT3//
Fertig :wink:

function intToHex(num) {
    var numVals  = new Array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 
                             'C', 'D', 'E', 'F');
    var result = '';
    var work = num;
    while(work > 0) {
      result = numVals[work % 16] + result;
      work = parseInt(work / 16);
    }
   return (result.length > 0?result:'00');
}


function RGB2HTML(cColor)
{   
    cColor = cColor.split(", ", 3)
    var red = cColor[0].substring(4);
    var green = cColor[1];
    var blue = cColor[2].replace(")", "");
    cColor = intToHex(red) + intToHex(green) + intToHex(blue);
    cColor = "#" + cColor;
    return cColor;
}

Seoson

stackoverflow.com/questions/5780 … javascript

Diese function ist auch sehr kurz und mitunter nützlich:

function rgbcolor(r,g,b){
var s = "000000" + (((r * 0x100 + g)* 0x100)+b).toString(16);
return "#" + s.substr(s.length-6,6).toUpperCase();
}

r,g,v sind Werte von 0…255; Rückgabe ist ein string ‘#RRGGBB’.