How to add validation pattern for Date in DD/MM/YYYY format using angular2 Validator.pattern.
I have the "required" validator in place. Cannot find one for date pattern. Code as below:
this.txtDob = new Control("", Validators.compose([Validators.required]));
There is no built-in date validator. You have to create a custom one http://blog.thoughtram.io/angular/2016/03/14/custom-validators-in-angular-2.html
Your validator will look like this https://github.com/Angular2Buch/angular2-forms/blob/master/src/app/validators/date.validator.ts
Update:
You need to have class for the validator. Specify it as a second element of array in Validators.compose
:
Validators.compose([Validators.required, MyValidator])
Pattern may work too: How to add form validation pattern in angular2
You can create a simple custom validator as below
import {Injectable} from "@angular/core";
import {FormControl} from "@angular/forms";
@Injectable()
export class DateValidator {
constructor() {
}
static date(c: FormControl) {
const dateRegEx = new RegExp(/^\d{1,2}\.\d{1,2}\.\d{4}$/);
return dateRegEx.test(c.value) ? null : {date: true}
}
}
and call it in your form
senddate: new FormControl(new Date(), Validators.compose([Validators.required, DateValidator.date])),
And then simply show the error in your html
<mat-error *ngIf="form.controls.senddate.dirty && form.controls.senddate.errors?.date">
La date d'envoi n'est pas <strong>valide</strong>
</mat-error>
I hope this could help.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With