我需要在输入文本字段上验证模式,用户仅应输入2018-2019(4位数字-4位数字)模式,但我不知道如何编写自定义验证功能。
答案 0 :(得分:2)
为了准确起见,我建议使用(?:19\d\d|2\d{3})-(?:19\d\d|2\d{3})
因此,用户只能输入20世纪及以后的日期。如果要将其限制为20日至21日,则可以使用以下命令:(?:19\d\d|20\d\d)-(?:19\d\d|20\d\d)
答案 1 :(得分:1)
已经有一个验证器。您可以使用Validators.pattern函数,该函数将您的正则表达式用作参数。 https://angular.io/api/forms/Validators#pattern
答案 2 :(得分:0)
Angular 4添加了Validators.min
和Validators.max
(请参阅docs),以采用反应形式验证最小和最大数量。
userForm = this.formBuilder.group({
num1: ['', Validators.min(15)],
num2: ['', Validators.max(50)]
});
例如
<input formControlName="num1">
<input formControlName="num2">
您可以显示以下验证错误消息:
<div *ngIf="num1.errors?.min">
Minimum required number is 15.
</div>
<div *ngIf="num2.errors?.max">
Maximum number can be 50.
</div>