From 1215a7ee7ab1690120d4d600cb84d7816907ae29 Mon Sep 17 00:00:00 2001 From: Tim Donohue Date: Fri, 2 Dec 2022 10:08:45 -0600 Subject: [PATCH] Fix email validation regex to use HTML5 provided regex --- .../register-email-form/register-email-form.component.spec.ts | 4 ++++ src/app/register-email-form/register-email-form.component.ts | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/app/register-email-form/register-email-form.component.spec.ts b/src/app/register-email-form/register-email-form.component.spec.ts index bac922c73b..cf3b4b13d2 100644 --- a/src/app/register-email-form/register-email-form.component.spec.ts +++ b/src/app/register-email-form/register-email-form.component.spec.ts @@ -95,6 +95,10 @@ describe('RegisterEmailComponent', () => { comp.form.patchValue({email: 'valid@email.org'}); expect(comp.form.invalid).toBeFalse(); }); + it('should be valid when uppercase letters are used', () => { + comp.form.patchValue({email: 'VALID@email.org'}); + expect(comp.form.invalid).toBeFalse(); + }); }); describe('register', () => { it('should send a registration to the service and on success display a message and return to home', () => { diff --git a/src/app/register-email-form/register-email-form.component.ts b/src/app/register-email-form/register-email-form.component.ts index ced87b9e75..561bd53e67 100644 --- a/src/app/register-email-form/register-email-form.component.ts +++ b/src/app/register-email-form/register-email-form.component.ts @@ -79,7 +79,9 @@ export class RegisterEmailFormComponent implements OnInit { this.form = this.formBuilder.group({ email: new FormControl('', { validators: [Validators.required, - Validators.pattern('^[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}$') + // Regex pattern borrowed from HTML5 specs for a valid email address: + // https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address + Validators.pattern('^[a-zA-Z0-9.!#$%&\'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$') ], }) });