ES2017 引入了字符串补全长度的功能。如果某个字符串不够指定长度,会在头部或尾部补全。padStart()用于头部补全,padEnd()用于尾部补全:
1 | 'x' .padStart(5, 'ab' ) // 'ababx' |
2 | 'x' .padStart(4, 'ab' ) // 'abax' |
3 | 'x' .padEnd(5, 'ab' ) // 'xabab' |
4 | 'x' .padEnd(4, 'ab' ) // 'xaba' |
上面代码中,padStart()和padStart()一共接受两个参数,第一个参数用来指定字符串的最小长度,第二个参数是用来补全的字符串。
如果原字符串的长度,等于或大于指定的最小长度,则返回原字符串:
1 | 'xxx' .padStart(2, 'ab' ) // 'xxx' |
2 | 'xxx' .padEnd(2, 'ab' ) // 'xxx' |
如果省略第二个参数,默认使用空格补全长度。
1 | 'x' .padStart(4) // ' x' |
2 | 'x' .padEnd(4) // 'x ' |
padStart()的常见用途是为数值补全指定位数。下面代码生成 10 位的数值字符串:
1 | '1' .padStart(10, '0' ) // "0000000001" |
2 | '12' .padStart(10, '0' ) // "0000000012" |
3 | '123456' .padStart(10, '0' ) // "0000123456" |
另一个用途是提示字符串格式:
1 | '12' .padStart(10, 'YYYY-MM-DD' ) // "YYYY-MM-12" |
2 | '09-12' .padStart(10, 'YYYY-MM-DD' ) // "YYYY-09-12" |