Javascript 仅允许角度为7的文本框使用十进制值

Javascript 仅允许角度为7的文本框使用十进制值,javascript,regex,angular7,angular-directive,Javascript,Regex,Angular7,Angular Directive,在Angular 7中,如何屏蔽输入字段(文本框),使其只接受十进制值,如(8.15或15.25) 我有以下HTML输入: <input type="text" name="amount" id="amount" pattern="[0-9]+(\.[0-9][0-9]?)?" (keypress)="numbersOnly($event)"> 我有下面的函数numbersOnly,它只允许十进制数,但不允许像下面这样多次输入小数点(.) 8.155454或8.65.24 它应

在Angular 7中,如何屏蔽输入字段(文本框),使其只接受十进制值,如(8.15或15.25)

我有以下HTML输入:

<input type="text" name="amount" id="amount" pattern="[0-9]+(\.[0-9][0-9]?)?" (keypress)="numbersOnly($event)">

我有下面的函数numbersOnly,它只允许十进制数,但不允许像下面这样多次输入小数点(.)

8.155454或8.65.24

它应该只允许1个小数点后的数字如下

8.15或80.45或555.14

下面是我的函数,它只接受十进制值

 numbersOnly(event: any) {
    let charCode = (event.which) ? event.which : event.keyCode;
    if (charCode != 46 && charCode > 31
        && (charCode < 48 || charCode > 57))
        return false;
    return true;
  }
numbersOnly(事件:任意){
让charCode=(event.which)?event.which:event.keyCode;
如果(charCode!=46&&charCode>31
&&(字符编码<48 | |字符编码>57))
返回false;
返回true;
}

您可以使用按键事件捕获输入值,并在事件处理程序中检查只有一个小数点

为此,我将
onkeypress=“return slideNumber\u keyFilter(event);”
添加到我的输入元素,然后使用此函数:

      <script>
        function slideNumber_keyFilter( event ) {
          return ( ( event.charCode >= 48 ) && ( event.charCode <= 57 ) );
        }
      </script>

函数slideNumber\u keyFilter(事件){

return((event.charCode>=48)和&(event.charCode)您应该利用HTML5的
@MonkeyZeus抱歉,但它也允许输入小数点(.)多次,我想在输入时限制它只允许一个小数点(.)