2012-04-23 16 views
15

我想將其轉換爲:"#FFFFFF"爲此:0xFFFFFF。如何不使用eval?如何從JS中的字符串獲取十六進制整數?

由於提前,

+0

我肯定* *這是一個重複。我希望「相關問題」對語言標籤更聰明: -/ – 2012-04-23 21:19:58

+1

@ Danny:用「十六進制值」表示**數值**值FFFFFF十六進制(例如,16777215十進制?)。如果是這樣,只要說「數字值」,把單詞「十六進制」帶入我們的字符串土地。不過,我認爲你的意思可能是數字。 – 2012-04-23 21:28:29

+1

@ T.J。 Crowder我編輯了標題 – 2012-04-23 21:31:22

回答

33

脫光 「#」,並使用parseInt()

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

然後,如果你想看到在十六進制,你可以使用.toString()

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

爲了效率的緣故,我寧願'substring()'(如@TJCrowder的答案)'replace()'。 – 2012-04-23 21:21:02

+1

@MarkReed:完全取決於OP *真正想要的內容,這個問題並不清楚。它可能是(因爲0xFFFFFF沒有引號)OP要的是數值(當然這會使問題的標題完全錯誤 - 不是第一次!)。 – 2012-04-23 21:22:06

+0

謝謝,它的工作 – 2012-04-23 21:33:40

相關問題