用前导零填充输入

fill input with leading zeros

我遇到了麻烦,但找不到正确的方法。我用掩码=“0000000000”,但他没有回答我。我有一个最多允许 10 个数字的输入,例如:1234256896,即 10 个元素。如果用户输入 12345,我必须在左边再添加 5 个零,因为他需要完成 10 个数字,结果将是这样的:0000012345。如果用户输入 123,他将不得不再添加 7 个零到左边。

要获得前导零,请使用 javascript 中的数组 slice() 方法。

function getNumberWithLeadingZero(number) {
  if (number<=9999999999) {
    number = ("0000000000"+number).slice(-10);
  }
  return number;
}

这将 return 带有前导零的数字。

console.log(getNumberWithLeadingZero(126534));

这将 return 字符串 "0000126534"。您可以使用方法 parseInt()

恢复为初始数字
 number = parseInt(number)

您可以使用

实现输入标签的 focusout 事件和 format

TS代码

format() {
    this.mynumber = this.padLeft(this.mynumber, "0", 10);
  }

  padLeft(text: string, padChar: string, size: number): string {
    return (String(padChar).repeat(size) + text).substr(size * -1, size);
  }

HTML

<input type="text" [(ngModel)]="mynumber" (focusout)="format()">

演示 https://stackblitz.com/edit/angular-format-number-leading-0