我想限制textbox中的特殊字符。我的意思是如果用户输入任何特殊字符,它们不应该显示在文本框中。在Aangular 1中,你可以通过使用解析器来实现。在Angular2中实现这一目标的最佳方法是什么。
更新 为了达到预期的效果,我想出了这个。
input type="text" [(ngModel)]="user.name" #name="ngModel" #ctrlName (onModelChange)="onChange('name')"
onChange(field : string){
this.user["field"] = this.user["field"].replace(/[^\w\s]/gi, '');
}
但这并没有更新控件值,所以我修改了它,如下所示
input type="text" [(ngModel)]="user.name" #name="ngModel" #ctrlName (onModelChange)="onChange('name',ctrlName)"
onChange(field : string,ctrl : FormControl){
var value = this.user["field"].replace(/[^\w\s]/gi, '');
this.user["field"] = value;
ctrl.value = value;
}
但是现在当我输入一个特殊字符时,它会从输入中删除但如果我测试它的所需字段有效性如name.valid,则结果为true,这意味着它不会从模型中删除。任何帮助都会很多赞赏。