0

I am using formbuilder and i have used below pattern

this.registerForm = this.formbuilder.group({
      title : ['',Validators.required],
      fname : ['',Validators.required],
      lname : ['',Validators.required],
      tel : ['',[Validators.required, Validators.pattern('^[+][0-9]+$')]],
      email : ['',[Validators.required,Validators.pattern('^[_a-z0-9]+(\.[_a-z0-9]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$')]],
      cname : ['', Validators.required],
      role : ['']
    });

It's validating email address but it is not validating .com or .xxxx in the email. For example it is considering below email id as valid email:

ambuj.webmasters@xxxx

It should consider it as invalid. Valid email id could be:

ambuj.webmasters@xxxxx.com
Ambuj Khanna
  • 1,131
  • 3
  • 12
  • 32

1 Answers1

1

Try this pattern,

this.registerForm = this.formbuilder.group({
      title : ['',Validators.required],
      fname : ['',Validators.required],
      lname : ['',Validators.required],
      tel : ['',[Validators.required, Validators.pattern('^[+][0-9]+$')]],
      email: ['', Validators.compose([Validators.required, Validators.pattern(/[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/)])],
      cname : ['', Validators.required],
      role : ['']
    });
Aniket Avhad
  • 4,025
  • 2
  • 23
  • 29
  • meanwhile I have used `required pattern="^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,6})+$"` in HTML and it is also working fine for me. – Ambuj Khanna Sep 24 '18 at 12:04