如何用ES6模板字面量实现类似Python的数字补零/补空格?
当然可以!ES6+ 给我们提供了非常顺手的工具,能轻松和模板字面量配合实现你要的效果,分两种情况给你说明:
实现前导零填充
你可以借助String.prototype.padStart()方法——它就是专门用来在字符串开头填充指定字符,直到达到目标长度的。结合模板字面量的写法非常直观:
const num = 1; const paddedWithZero = `${String(num).padStart(2, '0')}`; console.log(paddedWithZero); // 输出 "01"
这里padStart()接收两个参数:第一个是最终字符串的总长度(这里我们要两位,所以传2),第二个是用来填充的字符(这里是'0')。如果原数字转成字符串后长度已经够了,比如数字是12,那这个方法就不会做任何填充,直接返回"12"。
用空格替代零实现左对齐填充
思路完全一样,只需要把填充字符换成空格就行:
const num = 1; const paddedWithSpace = `${String(num).padStart(2, ' ')}`; console.log(paddedWithSpace); // 输出 " 1"
顺带提一句,padStart()是ES2017引入的方法,现在主流浏览器和Node.js版本都已经支持它了。如果需要兼容特别老旧的环境,也可以找对应的polyfill,但现在大部分场景下直接用就没问题。
内容的提问来源于stack exchange,提问作者Norfeldt
相关产品推荐
相关产品推荐

