From fafb1d5fd7f3263aa7edf64e7041faf23384b00b Mon Sep 17 00:00:00 2001 From: NeatGuyCoding <15627489+NeatGuyCoding@users.noreply.github.com> Date: Thu, 17 Jul 2025 14:20:44 +0800 Subject: [PATCH] feat: validate email according to RFC 5322 (#22540) --- web/app/account/account-page/email-change-modal.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web/app/account/account-page/email-change-modal.tsx b/web/app/account/account-page/email-change-modal.tsx index 85c7db594..c3efad104 100644 --- a/web/app/account/account-page/email-change-modal.tsx +++ b/web/app/account/account-page/email-change-modal.tsx @@ -113,8 +113,8 @@ const EmailChangeModal = ({ onClose, email, show }: Props) => { } const isValidEmail = (email: string): boolean => { - const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/ - return emailRegex.test(email) + const rfc5322emailRegex = /^[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])?)*$/ + return rfc5322emailRegex.test(email) && email.length <= 254 } const checkNewEmailExisted = async (email: string) => {