From 8ad42e7344383c92f895e907a17e6af5eec159fa Mon Sep 17 00:00:00 2001 From: Fabian Hiller Date: Sat, 7 Oct 2023 00:48:36 -0400 Subject: [PATCH] Change email regex to a handcrafted one #180 --- library/src/validations/email/email.test.ts | 1 + library/src/validations/email/email.ts | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/library/src/validations/email/email.test.ts b/library/src/validations/email/email.test.ts index 0a5d1a1e1..86c8a1b61 100644 --- a/library/src/validations/email/email.test.ts +++ b/library/src/validations/email/email.test.ts @@ -43,6 +43,7 @@ describe('email', () => { expect(validate('email@example.com (Joe Smith)').issues).toBeTruthy(); expect(validate('email@example').issues).toBeTruthy(); expect(validate('email@-example.com').issues).toBeTruthy(); + expect(validate('email@example-.com').issues).toBeTruthy(); expect(validate('email@111.222.333.44444').issues).toBeTruthy(); expect(validate('email@example..com').issues).toBeTruthy(); expect(validate('Abc..123@example.com').issues).toBeTruthy(); diff --git a/library/src/validations/email/email.ts b/library/src/validations/email/email.ts index 2f3e7f28a..16eee94a2 100644 --- a/library/src/validations/email/email.ts +++ b/library/src/validations/email/email.ts @@ -10,7 +10,7 @@ import { getOutput, getPipeIssues } from '../../utils/index.ts'; */ export function email(error?: ErrorMessage) { return (input: TInput): PipeResult => - !/^(?!\.)(?!.*\.\.)([A-Z0-9_+-.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9-]*\.)+[A-Z]{2,}$/i.test( + !/^[\w+-]+(?:\.[\w+-]+)*@[A-Z0-9]+(?:(?:\.|-)[A-Z0-9]+)*\.[A-Z]{2,}$/i.test( input ) ? getPipeIssues('email', error || 'Invalid email', input)