首页 > 解决方案 > 如果有逗号,则 nativeElement.value 为 NaN

问题描述

我正在尝试将输入中的小数位数设置为 2。当我在其中输入逗号时,该值变为 NaN 所以我想得到我的号码而不是这个。

TS

 @ViewChild('number') input;

     limitNbOfDecimals() {
    var regex =
      this.form.number.search(/^(\d+(?:[\.\,]\d{0,2})?)$/) == 0
        ? true
        : false;

    if (regex == false) { 
      // Convert the value to a number
      var nb: number = +this.input.nativeElement.value;  
      //set decimals at 2
      this.input.nativeElement.value = nb.toFixed(2);
      
    }
  }

HTML

 <input class="form-control" type="text" [(ngModel)]="form.number"
                  #number
                  name="number"
                  (input)="limitNbOfDecimals()"
                />

编辑

我设法在数字中添加一个逗号,但是如果我在删除逗号后的数字后尝试添加超过 2 个小数,例如 1,11 -> 1

标签: javascriptangularnan

解决方案


要添加超过 2 个十进制值,您需要告诉 .toFixed(4) 等。


推荐阅读