Here is the example of form with custom validation
formInitilization() {
this.loginForm = this._fb.group({
email: ['', [Validators.required ,this.emailValidation]]
});
}
emailValidation(control?:FormControl){
let val=control.value.trim();
let emailp:any=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
if(!emailp.test(val))
return { isInvalidEmail:true };
return null;
}
<input type="text" formControlName="email" autofocus='true'>
<span *ngIf='!loginForm.controls["email"].valid && loginForm.controls["email"].dirty' >
Error message
</span>