var number = 1310;
应该被保留不变。
var number = 120;
应该改为 "0120"。var number = 10;
应该更改为 "0010"。
var number = 7;
应该改为"0007"。
var number = 1310;
应该被保留不变。
var number = 120;
应该改为 "0120"。var number = 10;
应该更改为 "0010"。
var number = 7;
应该改为"0007"。
在所有现代浏览器中,您都可以使用:
numberStr.padStart(4, "0");
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padStart
function zeroPad(num) {
return num.toString().padStart(4, "0");
}
var numbers = [1310, 120, 10, 7];
numbers.forEach(
function(num) {
var paddedNum = zeroPad(num);
console.log(paddedNum);
}
);
function pad_with_zeroes(number, length) {
var my_string = '' + number;
while (my_string.length < length) {
my_string = '0' + my_string;
}
return my_string;
}
padStart
(如@LifeHack所建议的)是一个很棒的内置函数,可以解决这个问题。 - Anupam试试这些:
('0000' + number).slice(-4);
(number+'').padStart(4,'0');
var number = 1310;
var number = 120;
var number = 10;
var number = 7;
那么
// only needs to happen once
var zeroString = "00000";
// one assignment gets the padded number
var paddedNum = zeroString.substring((number + "").length, 4) + bareNum;
//output
alert("The padded number string is: " + paddedNum);
var bareNum = 42 + '';
var zeroString = "000000000000000";
var paddedNum = zeroString.substring(bareNumber.length, 14) + bareNum
这个函数从zeroString的长度开始提取零,并持续获取零到14位。只要第三行中的“14”是低于zeroString中字符数的整数,它就会起作用。
function pad(n, len) {
return (new Array(len + 1).join('0') + n).slice(-len);
}
在旧版IE中可能无法正常工作。
("0000" + n).slice(-4);
。 - Andy E//to: 0 - to left, 1 - to right
String.prototype.pad = function(_char, len, to) {
if (!this || !_char || this.length >= len) {
return this;
}
to = to || 0;
var ret = this;
var max = (len - this.length)/_char.length + 1;
while (--max) {
ret = (to) ? ret + _char : _char + ret;
}
return ret;
};
使用方法:
someString.pad(neededChars, neededLength)
例子:
'332'.pad('0', 6); //'000332'
'332'.pad('0', 6, 1); //'332000'
使用 RegExp/JavaScript:
var number = 7;
number = ('0000'+number).match(/\d{4}$/);
console.log(number);
使用函数/正则表达式/JavaScript:
var number = 7;
function padFix(n) {
return ('0000'+n).match(/\d{4}$/);
}
console.log(padFix(number));
// You want to pad four places:
>>> var N = Math.pow(10, 4)
>>> var number = 1310
>>> number < N ? ("" + (N + number)).slice(1) : "" + number
"1310"
>>> var number = 120
>>> number < N ? ("" + (N + number)).slice(1) : "" + number
"0120"
>>> var number = 10
>>> number < N ? ("" + (N + number)).slice(1) : "" + number
"0010"
…
等等,您可以很容易地将其转换为一个函数:
/**
* Pad a number with leading zeros to "pad" places:
*
* @param number: The number to pad
* @param pad: The maximum number of leading zeros
*/
function padNumber(number, pad) {
var N = Math.pow(10, pad);
return number < N ? ("" + (N + number)).slice(1) : "" + number
}
function padLeft(input, padLength) {
var num = $("#" + input).val();
$("#" + input).val(('0'.repeat(padLength) + num).slice(-padLength));
}
没有循环,没有函数
let n = "" + 100;
let x = ("0000000000" + n).substring(n.length);//add your amount of zeros
alert(x + "-" + x.length);