2014-01-28 43 views
3

當您將一個小數字轉換爲十六進制表示時,您需要前導零,因爲toString(16)將返回f15,而不是00000f。通常我會用這樣的循環:toString(16)與前導零

var s = X.toString(16); while (s.length < 6) s = '0' + s 

在JavaScript中有更好的方法嗎?

UPD:答案suggested answer How can I create a Zerofilled value using JavaScript?不是我正在尋找的,我尋找一個非常短的代碼,它特別適用於轉換爲十六進制字符串的24位整數。

+0

有可能使用在格式化 – RyanS

+0

這個問題的答案是8行的代碼數量的東西!我正在尋找比我的一行更短的東西 – exebook

+0

@exebook:這取決於您是否需要支持任意長填充,小數,負數......您可以從答案中提取有用的指標。 – Bergi

回答

1

如何

('00000'+(15).toString(16)).substr(-5) 
+0

這很有趣+1 – epascarello

+3

-1:['substr'](https://developer.mozilla .org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substr)不支持IE。改用'slice'。 – Bergi

+1

此外,OP正在尋找一個數字**'X' **到**'6'的長度** ...... – Bergi

0

也許這:

var s = X.toString(16); 
s = "000000".substr(0, 6 - s.length) + s;