javascript填充输入值,0到最大长度

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript填充输入值,0到最大长度相关的知识,希望对你有一定的参考价值。

我的输入最大长度为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

答案

你可以使用ES8 String.prototype.padEnd()

padEnd()方法用给定的字符串填充当前字符串(如果需要,重复),以便生成的字符串达到给定的长度。填充从当前字符串的末尾(右侧)开始应用。

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;
}

希望能帮助到你。

另一答案

你可以尝试这种方法:

var number = 123;
for(var i = number.toString().length; i<13; i++) {
  number += '0';
}
console.log(number);
另一答案

当ES2017的String.padEnd不可用时,这也可能是一种可能的方法:

var maxLen = 13;
var myNumber = 1234;
var filledNumber = (myNumber + Array(maxLen).fill(0).join('')).substr(0, maxLen);

以上是关于javascript填充输入值,0到最大长度的主要内容,如果未能解决你的问题,请参考以下文章

密码输入字段长度 = 0 自动填充(android chrome)

java输出最大值和最小值

如何将输入/选择值从网站保存到 XML/JSON 文件并使用 JavaScript 自动加载再次填充它们

在调整大小时禁用矢量填充值? C++

达到最大长度值后,将下一个输入聚焦

如何更改多个填充的复选框输入字段值?