From 3f9cdce94b8655d487f3cf73a95890035df1d516 Mon Sep 17 00:00:00 2001 From: Oliver Cooper Date: Mon, 18 Jan 2021 12:17:11 +0000 Subject: [PATCH] Improve flexibility of email validation in the ValidationHelper * ValidationHelper.EmailRegEx can now be modified to suit the users needs * Regex updated to be more inclusive - see https://html.spec.whatwg.org/#valid-e-mail-address --- .../Volo/Abp/Validation/ValidationHelper.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/ValidationHelper.cs b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/ValidationHelper.cs index d46281d2e9..9f6cec23e5 100644 --- a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/ValidationHelper.cs +++ b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/ValidationHelper.cs @@ -4,7 +4,9 @@ namespace Volo.Abp.Validation { public class ValidationHelper { - private const string EmailRegEx = @"[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?"; + // Taken from W3C as an alternative to the RFC5322 specification: https://html.spec.whatwg.org/#valid-e-mail-address + // The RFC5322 regex can be found here: https://emailregex.com/ + public static string EmailRegEx { get; set; } = @"^[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])?)*$"; public static bool IsValidEmailAddress(string email) { @@ -13,7 +15,6 @@ namespace Volo.Abp.Validation return false; } - /*RFC 2822 (simplified)*/ return Regex.IsMatch(email, EmailRegEx, RegexOptions.Compiled | RegexOptions.IgnoreCase); } }