javascript - 用于输入类型编号的 Angular 8 验证器

标签 javascript regex angular typescript angular-reactive-forms

我有一个带有类型编号的输入,默认情况下允许插入一些字符,例如“+”“-”“。”

HTML

   <input   type="number"
              class="form-control"
              formControlName="numberChildren"/>

typescript

  constructor(private formBuilder: FormBuilder) { }

  ngOnInit() {
    this.createForm();
  }

  private createForm(): void {
    this.personalForm= this.formBuilder.group({
        numberChildren: [null, [Validators.required, Validators.pattern('[0-9]{2}')]],

    })
  }

我想实现一个只接受没有“+”“-”“的数字”的逻辑。

注意:必须使用数字作为输入类型

最佳答案

您可以注册到 keypress 事件来忽略您不想要的字符,例如 + 字符。这也可能对用户更友好,因为没有显示错误消息,它只是停止将字符添加到输入中。

<input type="number"
  class="form-control"
  (keypress)="($event.charCode === 8 || $event.charCode === 0 || $event.charCode === 13) ? null : $event.charCode >= 48 && $event.charCode <= 57"
  formControlName="numberChildren"/>

charCodeASCII character用过的。这将允许输入数字以及 ENTER 和 BackSpace。

关于javascript - 用于输入类型编号的 Angular 8 验证器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61089224/

相关文章:

java - 如何访问 JSON 值?

javascript - 正则表达式相同的参数

python - 如何提取某个单词前的数字?

angular - 错误 : Failed: Template parse errors: 'mat-checkbox' is not a known element

javascript - Angular/Javascript 日期中的夏令时

angular - 文件输入不适用于 Vanilla 小米红米系列

javascript - 如何在 JavaScript 中正确获取这些 DOM 元素名称?

javascript - 以 http ://and containing ~ 开头的字符串的正则表达式

javascript - 在 Javascript 上使用 For 循环和数组在输入姓名时显示电话号码

javascript - 将带有句号的单词拆分为单独的字符范围,包括句号