Browse Source
Merge pull request #7310 from olicooper/pr/validation-helper
Improve flexibility of email validation in the ValidationHelper
pull/7363/head
Halil İbrahim Kalkan
6 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with
8 additions and
3 deletions
-
framework/src/Volo.Abp.Validation/Volo/Abp/Validation/ValidationHelper.cs
-
framework/test/Volo.Abp.Validation.Tests/Volo/Abp/Validation/ApplicationService_Validation_Tests.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); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@ -180,15 +180,19 @@ namespace Volo.Abp.Validation |
|
|
|
{ |
|
|
|
//Valid
|
|
|
|
ValidationHelper.IsValidEmailAddress("john.doe@domain.com").ShouldBe(true); |
|
|
|
ValidationHelper.IsValidEmailAddress("john-doe1@domain.co").ShouldBe(true); |
|
|
|
ValidationHelper.IsValidEmailAddress("ip@1.2.3.123").ShouldBe(true); |
|
|
|
ValidationHelper.IsValidEmailAddress("pharaoh@egyptian.museum").ShouldBe(true); |
|
|
|
ValidationHelper.IsValidEmailAddress("john.doe+regexbuddy@gmail.com").ShouldBe(true); |
|
|
|
ValidationHelper.IsValidEmailAddress("Mike.O'Dell@ireland.com").ShouldBe(true); |
|
|
|
ValidationHelper.IsValidEmailAddress("admin@localhost").ShouldBe(true); |
|
|
|
ValidationHelper.IsValidEmailAddress("j@h.c").ShouldBe(true); |
|
|
|
|
|
|
|
//Invalid
|
|
|
|
ValidationHelper.IsValidEmailAddress("1024x768@60Hz").ShouldBe(false); |
|
|
|
ValidationHelper.IsValidEmailAddress("not.a.valid.email").ShouldBe(false); |
|
|
|
ValidationHelper.IsValidEmailAddress("john@aol...com").ShouldBe(false); |
|
|
|
ValidationHelper.IsValidEmailAddress("john@aol@domain.com").ShouldBe(false); |
|
|
|
ValidationHelper.IsValidEmailAddress("jack@domain.").ShouldBe(false); |
|
|
|
} |
|
|
|
|
|
|
|
[DependsOn(typeof(AbpAutofacModule))] |
|
|
|
|