Validation 仅允许类型为text的离子输入中的数字

Validation 仅允许类型为text的离子输入中的数字,validation,input,ionic3,angular5,Validation,Input,Ionic3,Angular5,我需要进行以下输入,以便它只接受数字: <ion-input formControlName="quantity"></ion-input> 我知道这可以通过type=number来实现,但由于其他原因,我只能使用type文本。是否可以使用文本类型执行此操作?还有,我如何验证最小值和最大值呢?也许你可以通过TypeScript文件中的按键事件来实现,并且只授权数字… 在侦听器中,当事件不是您的组件.html中的数字时,您可以阻止默认事件、停止其传播并返回false:

我需要进行以下输入,以便它只接受数字:

<ion-input formControlName="quantity"></ion-input>


我知道这可以通过type=number来实现,但由于其他原因,我只能使用type文本。是否可以使用文本类型执行此操作?还有,我如何验证最小值和最大值呢?

也许你可以通过TypeScript文件中的按键事件来实现,并且只授权数字…
在侦听器中,当事件不是您的
组件.html中的数字时,您可以阻止默认事件、停止其传播并返回false:

`<ion-input (ionInput)="onInput($event)" maxlength="3" ></ion-input>`

检测到输入时,只需从值中删掉任何不是数字的内容。

可以通过以下方法精确完成:

在.ts文件中:

numericOnly(event): boolean {
   let patter = /^([0-9])$/;
   let result = pattern.test(event.key);
   return result;
}
<ion-input
        class="input"
        inputmode="numeric"
        type="number"
        (keypress)="numericOnly($event)"
      >
</ion-input>
在.html文件中:

numericOnly(event): boolean {
   let patter = /^([0-9])$/;
   let result = pattern.test(event.key);
   return result;
}
<ion-input
        class="input"
        inputmode="numeric"
        type="number"
        (keypress)="numericOnly($event)"
      >
</ion-input>


如果我理解正确,您愿意使用Angular/任何其他基于JS的限制来限制用户输入,对吗?正确,在这种情况下是Ionic。非常感谢!为我工作!