Wenzi

javascript如何添加前置0

蚊子前端博客
发布于 2015/09/20 06:00
JavaScript中的数字是没有前置0的,因此需要我们自己进行操作来添加前置0,而且还得转换成字符串

JavaScript 中的数字是没有前置 0 的,因此需要我们自己进行操作来添加前置 0,而且还得转换成字符串。

假如生成一个是一共是 4 位的有前置 0 的数据,通常我们能想到的方法是这样子的:

function addPreZero(num) {
  if (num < 10) {
    return '000' + num;
  }
  if (num < 100) {
    return '00' + num;
  }
  if (num < 1000) {
    return '0' + num;
  }
  return num;
}

这种方式的思路比较简单,根据当前数据的位数来补充相应个数的前置 0;不过这样的算法写起来比较麻烦,如果需要的前置 0 非常多的话,那么得写很多的if...else。还是基于这种思路,我们可以先算出这个数字有多少位,然后直接补上相应的 0 就行了:

function addPreZero(num) {
  var t = (num + '').length,
    s = '';

  for (var i = 0; i < 4 - t; i++) {
    s += '0';
  }

  return s + num;
}

这种方式的实现,是根据当前 num 的位数,来计算出所有的前置 0,然后再拼接上 num。

在这个基础上,我们还可以这样考虑:比如需要一共是 10 位的有前置 0 的数据,那么首先不管当前数字是多少位的,都先补上 9 个前置 0,然后再截取这个字符串最后的 10 位,那么获取到的就是需要的数据:

function addPreZero(num) {
  return ('000000000' + num).slice(-10);
}

2022 年 6 月更新:在 ECMAScript 2017 中,字符串中新增了padStartpadEnd 两个方法,用来给字符串添加前置字符串和后置字符串。

const num = 123;

num.toString().padStart(10, '0'); // '0000000123'

第 1 个参数表示目标字符串的长度,若设定的长度小于当前字符串的长度,则原样返回;否则,就用第 2 个参数里的字符串进行重复填充,直到满足设定长度。

实现想要的结果很多的方法,我们应该尽可能的想出更多的方法,一方面能够拓展我们的思维,另一方面也能让我们选择出更好的方式。

标签:javascript
阅读(986)
Simple Empty
No data