字符串补0的一个简单方法
问题描述
字符串补0是常见的需求,比如日期不足2位补0,数字精度不足补0等,需求是给一个数字和一个小数精度返回一个带有特定精度的数字字符串
问题分析
字符串补0操作可以考虑切割字符串操作,参考:substr() 方法
问题解决
- 先看一个日期补0的方法:
function padStart(str){
return ('0' + str).substr(-2)
}
padStart(2) // 02
padStart(10) // 10
- 方法延伸,输出固定长度,不足的前面补0
function padStart(str, len){
return ('0000000000000000' + str).substr(-len)
}
padStart(2, 4) // 0002
padStart(10, 4) // 0010
- 后缀补0保持精度
function padEnd(val, pre) {
if(!isNaN(val) && isFinite(val)) {
let parts = val.toString().split('.')
let pad = '0000000000000000'
// let pad = Array(pre + 1).join('0')
if(parts[1]) {
pad = parts[1] + pad
}
pad = pad.substr(0, pre)
return parts[0] + '.' + pad
}
return ''
}
padEnd(8, 4) // 8.0000
padEnd(3.5, 4) // 3.5000
padEnd(1.23456, 4) // 1.2345