【发布时间】:2019-12-13 14:52:05
【问题描述】:
我想使用自定义验证器限制角度反应形式中的特殊字符。我在堆栈溢出中进行了搜索,但没有按预期工作。
HTML.TS
<input matInput placeholder="no symbols" formControlName="symbols" [errorStateMatcher]="matcher">
<mat-error *ngIf="signupForm.controls['symbols'].hasError('symbols')">
symbols are not allowed
</mat-error>
CUSTOM VALIDATOR.TS
export function symbolsOnly(control: AbstractControl) {
if ( /^[^`~!@#$%\^&*()_+={}|[\]\\:';"<>?,./]*$/.test(control.value)) {
return { symbols: true };
}
return null;
}
COMPONENT.TS
'symbols':new FormControl("",[symbolsOnly])
有人可以帮助我了解如何使用自定义验证器限制角度反应形式中的特殊字符
【问题讨论】:
-
不需要自定义验证器,您可以使用 Validators.pattern 针对正则表达式测试字符串
-
将自定义验证器函数放在组件文件中或使其成为静态,因此您可以在组件中使用类名。
标签: angular