fix: improves email validation format rules (#11757)

This PR updates the email validation regex to enforce stricter rules.

- Disallows emails containing double quotes (e.g., `"user"@example.com`,
`user@"example.com"`, `"user@example.com"`).
- Rejects spaces anywhere in the email (e.g., `user @example.com`).
- Prevents consecutive dots in both local and domain parts (e.g.,
`user..name@example.com`, `user@example..com`).
- Allows standard formats like `user@example.com` and
`user.name+alias@example.co.uk`.

Fixes #11755
This commit is contained in:
Patrik
2025-03-18 15:12:06 -04:00
committed by GitHub
parent fd99a30bb6
commit 875afccec4

View File

@@ -190,7 +190,16 @@ export const email: EmailFieldValidation = (
}
}
if ((value && !/\S[^\s@]*@\S+\.\S+/.test(value)) || (!value && required)) {
/**
* Disallows emails with double quotes (e.g., "user"@example.com, user@"example.com", "user@example.com")
* Rejects spaces anywhere in the email (e.g., user @example.com)
* Prevents consecutive dots (e.g., user..name@example.com)
* Ensures a valid domain (e.g., rejects user@example, user@example..com)
* Allows standard formats like user@example.com, user.name+alias@example.co.uk
*/
const emailRegex = /^(?!.*\.\.)[\w.%+-]+@[a-z0-9.-]+\.[a-z]{2,}$/i
if ((value && !emailRegex.test(value)) || (!value && required)) {
return t('validation:emailAddress')
}