javascript 用 0 填充输入值直到最大长度
javascript fill input value with 0's till maxlength
我有一个最大长度为 13 个数字的输入。
每次您输入一个数字时,它都会显示在网站上。
这工作正常,但如果输入的长度不是 13 个数字,我需要为 13 个数字中的每一个设置默认值 0。
因此,如果您已经输入 1234
,则输出应如下所示:1234000000000
只需将所有缺失的数字替换为 0
如果输入完全为空,则它与 if (input == '')
一起工作
但是我总是需要13个数字所以我必须用0填充输入
$('#input').keyup(function() {
var input = $(this).val();
if (input == '') {
input = '0000000000000';
}
var i = 0;
while (i < 13) {
var digit = input.charAt(i);
$('.inp' + i + ' > .digit').html(digit);
i++;
}
var fdin = input.charAt(0);
// getStructure(fdin);
});
div {display: inline-block;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="input" type="text" onkeypress='return event.charCode >= 48 && event.charCode <= 57' maxlength="13"></input>
<div class="inp0"><span class="digit">0</span></div>
<div class="inp1"><span class="digit">0</span></div>
<div class="inp2"><span class="digit">0</span></div>
<div class="inp3"><span class="digit">0</span></div>
<div class="inp4"><span class="digit">0</span></div>
<div class="inp5"><span class="digit">0</span></div>
<div class="inp6"><span class="digit">0</span></div>
<div class="inp7"><span class="digit">0</span></div>
<div class="inp8"><span class="digit">0</span></div>
<div class="inp9"><span class="digit">0</span></div>
<div class="inp10"><span class="digit">0</span></div>
<div class="inp11"><span class="digit">0</span></div>
<div class="inp12"><span class="digit">0</span></div>
编辑: 用它制作了 this
你可以试试这个方法:
var number = 123;
for(var i = number.toString().length; i<13; i++) {
number += '0';
}
console.log(number);
还有:
var number = 123;
number += '0'.repeat(13 - number.toString().length);
console.log(number);
你可以使用 ES8 String.prototype.padEnd()
The padEnd() method pads the current string with a given string
(repeated, if needed) so that the resulting string reaches a given
length. The padding is applied from the end (right) of the current
string.
var str = "123";
var newStr = str.padEnd(13, "0");
console.log(newStr);
您可以通过以下代码使用 substr 技术。
function myFunction(number){
var newValue = parseInt((number+"0000000000000").substr(0,13));
return newValue;
}
希望对您有所帮助。
当 ES2017 的 String.padEnd
不可用时,这也是一种可能的方法:
var maxLen = 13;
var myNumber = 1234;
var filledNumber = (myNumber + Array(maxLen).fill(0).join('')).substr(0, maxLen);
我有一个最大长度为 13 个数字的输入。 每次您输入一个数字时,它都会显示在网站上。
这工作正常,但如果输入的长度不是 13 个数字,我需要为 13 个数字中的每一个设置默认值 0。
因此,如果您已经输入 1234
,则输出应如下所示:1234000000000
只需将所有缺失的数字替换为 0
如果输入完全为空,则它与 if (input == '')
一起工作
但是我总是需要13个数字所以我必须用0填充输入
$('#input').keyup(function() {
var input = $(this).val();
if (input == '') {
input = '0000000000000';
}
var i = 0;
while (i < 13) {
var digit = input.charAt(i);
$('.inp' + i + ' > .digit').html(digit);
i++;
}
var fdin = input.charAt(0);
// getStructure(fdin);
});
div {display: inline-block;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="input" type="text" onkeypress='return event.charCode >= 48 && event.charCode <= 57' maxlength="13"></input>
<div class="inp0"><span class="digit">0</span></div>
<div class="inp1"><span class="digit">0</span></div>
<div class="inp2"><span class="digit">0</span></div>
<div class="inp3"><span class="digit">0</span></div>
<div class="inp4"><span class="digit">0</span></div>
<div class="inp5"><span class="digit">0</span></div>
<div class="inp6"><span class="digit">0</span></div>
<div class="inp7"><span class="digit">0</span></div>
<div class="inp8"><span class="digit">0</span></div>
<div class="inp9"><span class="digit">0</span></div>
<div class="inp10"><span class="digit">0</span></div>
<div class="inp11"><span class="digit">0</span></div>
<div class="inp12"><span class="digit">0</span></div>
编辑: 用它制作了 this
你可以试试这个方法:
var number = 123;
for(var i = number.toString().length; i<13; i++) {
number += '0';
}
console.log(number);
还有:
var number = 123;
number += '0'.repeat(13 - number.toString().length);
console.log(number);
你可以使用 ES8 String.prototype.padEnd()
The padEnd() method pads the current string with a given string (repeated, if needed) so that the resulting string reaches a given length. The padding is applied from the end (right) of the current string.
var str = "123";
var newStr = str.padEnd(13, "0");
console.log(newStr);
您可以通过以下代码使用 substr 技术。
function myFunction(number){
var newValue = parseInt((number+"0000000000000").substr(0,13));
return newValue;
}
希望对您有所帮助。
当 ES2017 的 String.padEnd
不可用时,这也是一种可能的方法:
var maxLen = 13;
var myNumber = 1234;
var filledNumber = (myNumber + Array(maxLen).fill(0).join('')).substr(0, maxLen);