我仅在我的字段中验证文本输入
在我的login.component.ts
中letterOnly(event) : Boolean{
const charCode = (event.which) ? event.which : event.keyCode;
if ((charCode < 65 || charCode > 90) && (charCode < 97 || charCode > 122)) {
return false;
}
return true;
}
以及在login.component.html
中 <input type="text" matInput placeholder="Usuario" formControlName="userName" (keypress)="letterOnly($event)">
它可以在Windows上运行,但不能在Mac键盘上。
答案 0 :(得分:0)
您应该使用模式验证器:
<input type="text" matInput placeholder="Usuario" formControlName="userName" ngModel pattern="[a-zA-Z ]*">
第二个选项:
您可以保留“ letterOnly”方法,但使用regex代替比较ASCII。
答案 1 :(得分:0)
这不起作用,因为Mac和Windows之间的ascii表是不同的。
根据您的情况,使用Angular Pattern validation。
示例:
<input name="firstName" ngModel pattern="[a-zA-Z ]*">
答案 2 :(得分:0)
您可以通过以下方式更改支票charCode
function letterOnly(event)
{
var charCode = event.keyCode;
if ((charCode > 64 && charCode < 91) || (charCode > 96 && charCode < 123) || charCode == 8)
return true;
else
return false;
}