2012-04-23 13 views
15

Vorrei convertire questo: "#FFFFFF" a questo: 0xFFFFFF. Com'è possibile senza usare eval?Come ottenere l'intero esadecimale da una stringa in JS?

Grazie in anticipo,

+0

Sono sicuro che * * questo è un duplicato ... Vorrei che le "domande correlate" erano più intelligenti riguardo ai tag della lingua: -/ –

+1

@ Danny: Per "valore esadecimale" intendi il valore numerico ** esadecimale FFFFFF (es. 16777215 decimale?). Se è così, dì semplicemente "valore numerico", inserendo la parola "esadecimale" in una stringa di terra. Penso che tu probabilmente intendessi un valore numerico, comunque. –

+1

@ T.J. Crowder I ha modificato il titolo –

risposta

33

togliere il "#" e utilizzare parseInt().

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

Quindi, se si desidera visualizzare in esadecimale, è possibile utilizzare .toString():

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

Preferirei 'substring()' (come nella risposta di @ TJCrowder) su 'replace()', per ragioni di efficienza. –

+1

@MarkReed: Dipende totalmente da ciò che l'OP * realmente * vuole, il che non è chiaro dalla domanda. Potrebbe essere (data la mancanza di virgolette su "0xFFFFFF") che l'OP vuole quindi un valore numerico (che, ovviamente, renderebbe il titolo della domanda completamente sbagliato - non la prima volta!). –

+0

Grazie, funziona –

Problemi correlati