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
parent
commit
be54793d4b
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 5
      framework/src/Volo.Abp.Validation/Volo/Abp/Validation/ValidationHelper.cs
  2. 6
      framework/test/Volo.Abp.Validation.Tests/Volo/Abp/Validation/ApplicationService_Validation_Tests.cs

5
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);
}
}

6
framework/test/Volo.Abp.Validation.Tests/Volo/Abp/Validation/ApplicationService_Validation_Tests.cs

@ -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))]

Loading…
Cancel
Save