Javascript 正则表达式,用于删除除数字以外的字符,并仅允许角6中的单个小数点

Javascript 正则表达式,用于删除除数字以外的字符,并仅允许角6中的单个小数点,javascript,html,angular,typescript,angular-material,Javascript,Html,Angular,Typescript,Angular Material,我读过类似的问题,但似乎没有解决办法。 我有一个角度材料输入框。输入应该只接收数字和小数点。移除按键时,应识别并移除所有其他字符 这是我的代码: 在TS文件和html中: allownumberly(inputVal){ inputVal=inputVal.replace(//[^0-9.]/g',);//在堆栈溢出的响应之后修改。 this.myForm.controls['inNum'].setValue(inputVal); } 您可以使用按键事件: <input (keypres

我读过类似的问题,但似乎没有解决办法。 我有一个角度材料输入框。输入应该只接收数字和小数点。移除按键时,应识别并移除所有其他字符

这是我的代码:

在TS文件和html中:

allownumberly(inputVal){
inputVal=inputVal.replace(//[^0-9.]/g',);//在堆栈溢出的响应之后修改。
this.myForm.controls['inNum'].setValue(inputVal);
}

您可以使用
按键
事件:

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

和打字稿:

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;
   }
isNumberKey(evt){
console.log(evt.keyCode);
让charCode=(evt.which)?evt.which:evt.keyCode;
如果(charCode!=46&&charCode>31
&&(字符编码<48 | |字符编码>57))
返回false;
返回true;
}

这是您需要的演示。简单易用的正则表达式

函数myFunction(){
var demo=document.getElementById('demo');
demo.value=demo.value.replace(/[^0-9.]/g');
}

我们可以在ng模式本身中使用正则表达式:


输入
元素
类型
属性设置为
编号
将防止用户输入无效字符。这对你有用吗?嗨,Anonta,使用输入类型作为数字当然是个好方法。如果可能的话,我正在考虑对regexp进行修改。不允许添加小数点。谢谢您的回复,Komal。但恐怕这不允许小数点谢谢你的回答科马尔!我稍微修改了这个问题。希望你能帮忙:)