Html 角度-文本输入字段,仅接受手机中的数字

Html 角度-文本输入字段,仅接受手机中的数字,html,angular,responsive-design,Html,Angular,Responsive Design,在angular 9中,我使用以下代码创建了一个只接受数字的输入字段文本: Html文件: <mat-form-field> <mat-label>{{fields.label}}</mat-label> <input pattern="[0-9]*" [formControlName]="fields.field" [id]="fields.field" [type]="'t

在angular 9中,我使用以下代码创建了一个只接受数字的输入字段文本:

Html文件:

<mat-form-field>
<mat-label>{{fields.label}}</mat-label>
<input
 pattern="[0-9]*"
 [formControlName]="fields.field"
 [id]="fields.field"
 [type]="'text'"
 (keypress)="numericOnly($event)"
 autocomplete="off"
 matInput>
</mat-form-field>
这段代码在桌面web浏览器中正常工作,但我的问题是,当我用手机访问网站时,输入字段不仅接受数字,而且接受字符

请帮我用手机解决这个问题。我仍然需要这个在safari、chrome和mozilla手机中工作。谢谢大家。

//这会帮到你们的

numbersOnly(event) {
        const input = String.fromCharCode(event.keyCode);
        if (!/^[0-9]*$/.test(input)) {
            event.preventDefault();
        }
    }

此代码是否有助于
inputmode=“numeric”
?因为您使用的是反应式表单,所以在该字段上使用验证器。此外,如果您将类型更改为“仅使用号码”,则可以键入号码,并且在mobile中,它将仅打开一个号码keypad@handsand对不起,我正在使用输入字段文本,因为我的字段需要一些实现。我还有一个验证器。谢谢,我会让你知道这是否有效。这是否可以防止退格/删除?
numbersOnly(event) {
        const input = String.fromCharCode(event.keyCode);
        if (!/^[0-9]*$/.test(input)) {
            event.preventDefault();
        }
    }