例如:指定返回字符串长度是4,操作数是5,如何将这个5,变为'0005'返回
谢谢大家的回答!回答里有好几种思路,受益匪浅,再次感谢大家的回答,谢谢!
巴扎黑2017-04-10 15:03:24
function foo(str){
str ='00000'+str;
return str.substring(str.length-5,str.length);
}
PHP中文网2017-04-10 15:03:24
javascript
//给数字字符串补零,不支持负数 function padNumber(num, fill) { //改自:http://blog.csdn.net/aimingoo/article/details/4492592 var len = ('' + num).length; return (Array( fill > len ? fill - len + 1 || 0 : 0 ).join(0) + num); }
曾经拜读过在js中做数字字符串补0 这篇文章,受益匪浅,这个是在月影提供的版本上改进强壮了一点点的实现。
前辈们的思考值得我们学习。
天蓬老师2017-04-10 15:03:24
不支持负数的话,可以这样:
function zfill(num, size) {
var s = "000000000" + num;
return s.substr(s.length-size);
}
PHPz2017-04-10 15:03:24
javascript
function preZeroFill (num, size) { if (num >= Math.pow(10, size)) { //如果num本身位数不小于size位 return num.toString(); } else { var _str = Array(size + 1).join('0') + num; return _str.slice(_str.length - size); } } preZeroFill(5, 4);
此方法借鉴自captainblue的回答,并做优化,给赞请给captainblue.
PHP中文网2017-04-10 15:03:24
function prefix(num, val) {
return (new Array(num).join('0') + val).slice(-num);
}
PHPz2017-04-10 15:03:24
function padLeft(number, size) {
return number.toFixed(size - number.toString().length).replace('.', '').split('').reverse().join('');
}
大家讲道理2017-04-10 15:03:24
javascript
if (!String.prototype.zfill) { String.prototype.zfill = function(len) { if (len == undefined || typeof len != 'number' || this.length >= len) {return this.toString()} return Array(len - this.length + 1).join('0') + this; } }
大家讲道理2017-04-10 15:03:24
javascript
function prefix(size, num) { var sLen = ('' + num).length; if (sLen >= size) { return '' + num; } var preZero = (new Array(size)).join('0'); return preZero.substring(0, size - sLen) + num; }
参考了ls的答案。