# ES8(三) —— String Padding

# ES5对String补白的方式

补白即格式化,例如将数字都输出成两位数,前面0补位

例子一:

for(let i = 1 ; i < 32 ; i++){
  console.log(i >= 10 ? i : `0${i}`)
}
// 1-9输出01-09
// 10-31正常输出
1
2
3
4
5

# padStart

用另一个字符串填充当前字符串(如果需要的话,会重复多次),从头补白(也就是左侧)

  • 第一个参数是目标长度,要输出的位数
  • 第二个参数是占位内容,默认是空格
  • 返回值是生成的新的字符串

例子一的padStart写法:

for(let i = 1 ; i < 32 ; i++){
  // 目标是2位数,不够的用0补齐
  console.log(i.toString().padStart(2, '0'))
}
// 1-9输出01-09
// 10-31正常输出
1
2
3
4
5
6

例子二:1到320,阶梯是10

for(let i = 1 ; i < 320 ; i+=10){
  //指定补2位,不够的加0,超出的不管
  console.log(i.toString().padStart(2, '0')) // 输出1是01,11是11,101是101
  //指定补3位
  console.log(i.toString().padStart(3, '0')) // 输出1是001,11是011,101是101
}
1
2
3
4
5
6

例子三:1到32000,梯度1000

for(let i = 1 ; i < 32000 ; i+=1000){
  // 自动补全,能补几位是几位,然后从头轮询继续补到指定的长度
  console.log(i.toString().padStart(5, '*%$'))
}
// *%$*1
// *1001
// *2001
// ...
// 10001
// 11001
1
2
3
4
5
6
7
8
9
10

# padEnd

用另一个字符串填充当前字符串(如果需要的话,会重复多次),从当前字符串的末尾(右侧)开始填充。

  • 第一个参数是目标长度,要输出的位数
  • 第二个参数是占位内容,默认是空格
  • 返回值是生成的新的字符串

例子三的padEnd写法:

for(let i = 1 ; i < 32000 ; i+=1000){
// 自动补全,能补几位是几位,然后从尾部轮询继续补到指定的长度
  console.log(i.toString().padEnd(5, '*%$'))
}
// 1*%$*
// 1001*
// 2001*
// ...
// 10001
// 11001
1
2
3
4
5
6
7
8
9
10
更新时间: 2021-02-25 00:05