我想把一个数格式化为两位数。这个问题是在传递0-9时引起的,所以我需要将它格式化为00-09。

JavaScript中有数字格式化器吗?


当前回答

“${}数量”.replace (/ ^ (\ d) /美元,' 0 $ 1 ');

正则表达式是最好的。

其他回答

JavaScript没有内置的数字格式化器,但是有一些库可以实现这个功能:

下划线。String提供了sprintf函数(以及许多其他有用的格式化方法) Javascript-sprintf,其中下划线。字符串借用。

如果数字大于9,则将数字转换为字符串(一致性)。否则,加一个零。

function n(n){
    return n > 9 ? "" + n: "0" + n;
}

n( 9); //Returns "09"
n(10); //Returns "10"
n(999);//Returns "999"

我建立了一个非常简单的格式函数,每当我需要一个简单的日期格式化时,我就调用它。当数字小于10时,它处理将个位数格式化为两位数。它踢出的日期格式为2018年9月29日星期六- 00:05:44

这个函数被用作utils变量的一部分,所以它被称为:

let timestamp = utils._dateFormatter('your date string');

var utils = {
  _dateFormatter: function(dateString) {
    let d = new Date(dateString);
    let hours = d.getHours();
    let minutes = d.getMinutes();
    let seconds = d.getSeconds();
    d = d.toDateString();
    if (hours < 10) {
      hours = '0' + hours;
    }
    if (minutes < 10) {
      minutes = '0' + minutes;
    }
    if (seconds < 10) {
      seconds = '0' + seconds;
    }
    let formattedDate = d + ' - ' + hours + ':' + minutes + ':' + seconds;
    return formattedDate;
  }
}

这是我发现的最简单的解决方法:-

let num = 9; // any number between 0 & 99
let result = ( '0' + num ).substr( -2 );

这是一个非常好的和简短的解决方案:

smartTime(time) {
  return time < 10 ? "0" + time.toString().trim() : time;
}