2011-06-02 95 views
4

在C#中,每當我想打印兩位數字我用Javascript中的String.Format?

int digit=1; 
Console.Write(digit.ToString("00")); 

我怎樣才能做到在Javascript同樣的動作?
感謝

+0

可能重複://計算器.com/questions/610406/javascript-printf-string-format) – jvenema 2011-06-02 21:43:05

回答

10

C#digit.toString("00")追加一個零到digit左(左填充)。在JavaScript中我使用這個functon爲:

function zeroPad(nr,base){ 
    var len = (String(base).length - String(nr).length)+1; 
    return len > 0? new Array(len).join('0')+nr : nr; 
} 
zeroPad(1,10); //=> 01 
zeroPad(1,100); //=> 001 
zeroPad(1,1000); //=> 0001 

你也可以把它改寫爲一個推廣到數:

Number.prototype.zeroPad = Number.prototype.zeroPad || 
    function(base){ 
     var nr = this, len = (String(base).length - String(nr).length)+1; 
     return len > 0? new Array(len).join('0')+nr : nr; 
    }; 
//usage: 
(1).zeroPad(10); //=> 01 
(1).zeroPad(100); //=> 001 
(1).zeroPad(1000); //=> 0001 
[使用Javascript的printf /的String.Format(HTTP的
+0

太好了,非常感謝。 – 2011-06-02 21:56:29

+0

應該指出的是,這不適用於負數,也就是說只能使用正數。(只是因爲我在尋找類似的格式化程序來處理負數以及)。 – 2013-04-11 16:08:56

-1
var num =10 
document.write(num); 

但是,如果你的問題是兩次使用兩位數字,然後如果你想在之間的空間,你可以使用這個

var num1 = 10; 
var num2 = 20; 
var resultStr = string.concat(num1,num2); 
document.write(resultStr); 
... 
Result: 1020 

var resultStr = string.concat(num1,"",num2); 

希望這幫助...

+1

我認爲是想要的是填充數字,如果它<10,所以1變成字符串01或001 – Hubro 2011-06-02 21:46:02

+0

這不會幫助,因爲它沒有解決問題字符串格式化。 (例如,op想要像'i = 1 ==>「01」') – nfechner 2011-06-02 21:46:02

+0

ok瞭解...... :( – 2011-06-02 21:54:01

1

一種方法是下載sprintf for javascript,寫這樣的事情:

int i = 1; 
string s = sprintf("%02d", i); 
document.write(s); // Prints "01"