如何在输入中仅允许数字和特殊字符?

时间:2019-09-20 07:23:30

标签: javascript html angular

我有这个:

  <input style="text-align: right;font-size: 12px;" class='input' (keyup.enter)="sumTotal($event)" type="text"
      [ngModel]="field.value" (focusin)="focusin()" (focusout)="format()" (keyup.enter)="format()"
      (ngModelChange)="onlyNumbers($event);field.value = $event;sumTotal($event);" [disabled]="disabled">

在我看来,我有这个: 我想要数字和特殊字符。

  onlyNumbers(letter) { if (letter.toUpperCase() !== letter.toLowerCase()) { return; } else { this.field.value = letter; } }

但是它仍然可以输入字母。有什么建议吗?

2 个答案:

答案 0 :(得分:2)

使用event.preventDefault()来检查isNaN是否返回false,以及是否返回.,可能是您的解决方案:

function numbersonly(e){
  if(isNaN(e.key) && e.key !== '.' && e.key !== ',') e.preventDefault();
}
<input type="text" onkeypress="numbersonly(event)" />

答案 1 :(得分:0)

您可以尝试这种方式

 onkeypress="return (event.charCode == 8 && event.charCode == 0) ? null : event.charCode >= 48 && event.charCode <= 57"

其他方式设置模式

 pattern="[0-9]"