最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

String.Format in Javascript? - Stack Overflow

programmeradmin4浏览0评论

In C# whenever I wanted to print two digit numbers I've used

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

How can I do the same action in Javascript ?
Thanks

In C# whenever I wanted to print two digit numbers I've used

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

How can I do the same action in Javascript ?
Thanks

Share Improve this question asked Jun 2, 2011 at 21:38 Mohammad DayyanMohammad Dayyan 22.4k44 gold badges172 silver badges241 bronze badges 1
  • possible duplicate of Javascript printf/string.format – Jerod Venema Commented Jun 2, 2011 at 21:43
Add a comment  | 

4 Answers 4

Reset to default 14

c# digit.toString("00") appends one zero to the left of digit (left padding). In javascript I use this functon for that:

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

You can also rewrite it as an extention to Number:

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

[edit oct. 2021]

A static es20xx Number method, also suitable for negative numbers.

Number.padLeft = (nr, len = 2, padChr = `0`) => 
  `${nr < 0 ? `-` : ``}${`${Math.abs(nr)}`.padStart(len, padChr)}`;
console.log(Number.padLeft(3));
console.log(Number.padLeft(284, 5));
console.log(Number.padLeft(-32, 12));
console.log(Number.padLeft(-0)); // Note: -0 is not < 0

I usually just do something like ("00000000"+nr).slice(-base) where nr is the number and base is the number of digits you want to end up with.

One way would be to download sprintf for javascript and writing something like this:

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

But if your question is to use two digit numbers twice then you can use this

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

if you want a space in between,

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

Hope this helps...

发布评论

评论列表(0)

  1. 暂无评论