角度模式验证

时间:2018-09-26 16:30:43

标签: regex angular6 angular-reactive-forms

我需要在输入文本字段上验证模式,用户仅应输入2018-2019(4位数字-4位数字)模式,但我不知道如何编写自定义验证功能。

3 个答案:

答案 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)

Demo

答案 1 :(得分:1)

已经有一个验证器。您可以使用Validators.pattern函数,该函数将您的正则表达式用作参数。 https://angular.io/api/forms/Validators#pattern

答案 2 :(得分:0)

Angular 4添加了Validators.minValidators.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>