javascript - 用于删除除数字以外的字符并仅在 Angular 6 中允许单个小数点的正则表达式

标签 javascript html angular typescript angular-material

我读过类似的问题,但似乎没有任何解决方案适用于此。 我有一个 Angular Material 输入框。输入应该只接收数字和一个小数点。移除按键时应识别并移除所有其他字符。

这是我的代码:

在 TS 文件和 html 中:

allownumbersonly(inputVal) {
    inputVal = inputVal.replace(/[^0-9.]/g, '');//Modified after responses from stack overflow.
    this.myForm.controls['inNum'].setValue(inputVal);
  }
<mat-form-field>
            <input id="inputNumber" matInput (keyup)="allownumbersonly($event.target.value)" placeholder="enter a number"
              formControlName="inNum">
          </mat-form-field>

请帮忙。提前致谢。

最佳答案

你可以使用keypress事件:

<input (keypress)="isNumberKey($event)"/>

和 typescript :

isNumberKey(evt){
      console.log(evt.keyCode);
      let charCode = (evt.which) ? evt.which : evt.keyCode;
      if (charCode != 46 && charCode > 31 
        && (charCode < 48 || charCode > 57))
          return false;

      return true;
   }

Work example can be seen here

关于javascript - 用于删除除数字以外的字符并仅在 Angular 6 中允许单个小数点的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59088441/

相关文章:

angular - Angular 2 和 4 中的 ARIA 可访问性

javascript - NativeScript Android Build 抛出错误 : Command gradlew. bat 失败,退出代码 1

javascript - 重定向后如何将用户带到完全相同的位置?

javascript - 为什么 jQuery 对单个命令执行不需要的多个操作?

javascript - 根据内容最多的一张调整所有卡片的高度

javascript - 从 HTML 中删除选定元素的旧方法

javascript - 输入内联编辑 clickOutside

javascript - 状态中的计数值不递增

php - 鼠标悬停时下拉数据

php - 提交表单元素后如何将网页重定向到不同的网页