2012-04-23 13 views
15

Ich möchte dies konvertieren: "#FFFFFF" zu diesem: 0xFFFFFF. Wie ist es möglich ohne eval zu verwenden?Wie hex Ganzzahl aus einer Zeichenfolge in JS erhalten?

Vielen Dank im Voraus,

+0

Ich bin * sicher * dies ein Duplikat ist ... Ich möchte die "verwandten Fragen" waren schlauer über Sprach-Tags: -/ –

+1

@ Danny: Mit "Hex-Wert" meinst du den ** numerischen ** Wert FFFFFF hex (zB 16777215 dezimal?). Wenn ja, sagen Sie einfach "numerischer Wert", indem Sie das Wort "hex" in das String Land einfügen. Ich denke, Sie haben wahrscheinlich mit Zahlen gerechnet. –

+1

@T.J. Crowder Ich bearbeitete den Titel –

Antwort

33

Streifen aus dem "#" und parseInt() verwenden.

var hex = parseInt(str.replace(/^#/, ''), 16); 

Dann, wenn Sie wollen es in hex zu sehen, können Sie .toString() verwenden:

alert(hex.toString(16)); 
+1

Ich würde 'substring()' (wie in @ TJCrowder's Antwort) über 'replace()', um der Effizienz Willen. –

+1

@MarkReed: Es kommt ganz darauf an, was das OP * wirklich will, was aus der Frage nicht klar ist. Es kann (angesichts des Fehlens von Anführungszeichen auf "0xFFFFFF") sein, dass das OP dann einen numerischen Wert wünscht (was natürlich den Titel der Frage völlig falsch machen würde - nicht das erste Mal!). –

+0

Vielen Dank, es funktioniert –

Verwandte Themen