Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular2限制模板驱动表单中的特殊字符_Angular - Fatal编程技术网

Angular2限制模板驱动表单中的特殊字符

Angular2限制模板驱动表单中的特殊字符,angular,Angular,我想限制文本框中的特殊字符。我的意思是,如果用户输入任何特殊字符,它们不应该显示在文本框中。在Angular 1中,您可以使用解析器来实现这一点。在Angular2中实现这一目标的最佳方式是什么 更新 为了达到预期的效果,我想出了这个办法 input type="text" [(ngModel)]="user.name" #name="ngModel" #ctrlName (onModelChange)="onChange('name')" onChange(field : strin

我想限制文本框中的特殊字符。我的意思是,如果用户输入任何特殊字符,它们不应该显示在文本框中。在Angular 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,这意味着它不会从模型中删除。任何帮助都将不胜感激。

不确定您是否可以限制数据的显示(我知道您可以),简单地使用角度和自定义可能更容易validators@Bwolfing但现在我使用的是模板驱动forms@sqlcte也许会有帮助?看起来您可以使用模板驱动进行自定义验证,只需要多一点work@Bwolfing它看起来不错,但我想限制用户输入特殊字符。我不想显示特殊字符。我想要的是在用户输入特殊字符时删除它,并相应地更新模型。请有人帮助。如果我不够清楚,你可以让我做得更清楚精心设计。