JavaScript 中的 String.Format?

发布于 2024-11-13 22:01:24 字数 147 浏览 1 评论 0原文

在 C# 中,每当我想打印我使用过的两位数字时,

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

如何在 Javascript 中执行相同的操作?
谢谢

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

能怎样 2024-11-20 22:01:24

c# digit.toString("00")digit 左侧添加一个零(左侧填充)。在 javascript 中,我使用此函数:

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 的扩展:

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]

静态 es20xx Number 方法,也适用于负数。

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

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

一刻暧昧 2024-11-20 22:01:24

我通常只是做类似的事情
("00000000"+nr).slice(-base) 其中 nr 是数字,base 是要结束的位数跟上。

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.

恋你朝朝暮暮 2024-11-20 22:01:24

一种方法是下载 sprintf for javascript 并编写如下内容:

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

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"
南城旧梦 2024-11-20 22:01:24
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);

希望这会有所帮助......

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...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文