Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Globalization;
- using System.Text.RegularExpressions;
- public class RegexUtilities
- {
- bool invalid = false;
- public bool IsValidEmail(string strIn)
- {
- invalid = false;
- if (String.IsNullOrEmpty(strIn))
- return false;
- // Use IdnMapping class to convert Unicode domain names.
- try {
- strIn = Regex.Replace(strIn, @"(@)(.+)$", this.DomainMapper,
- RegexOptions.None, TimeSpan.FromMilliseconds(200));
- }
- catch (RegexMatchTimeoutException) {
- return false;
- }
- if (invalid)
- return false;
- // Return true if strIn is in valid e-mail format.
- try {
- return Regex.IsMatch(strIn,
- @"^(?("")("".+?(?<!\\)""@)|(([0-9a-z]((\.(?!\.))|[-!#\$%&'\*\+/=\?\^`\{\}\|~\w])*)(?<=[0-9a-z])@))" +
- @"(?(\[)(\[(\d{1,3}\.){3}\d{1,3}\])|(([0-9a-z][-\w]*[0-9a-z]*\.)+[a-z0-9][\-a-z0-9]{0,22}[a-z0-9]))$",
- RegexOptions.IgnoreCase, TimeSpan.FromMilliseconds(250));
- }
- catch (RegexMatchTimeoutException) {
- return false;
- }
- }
- private string DomainMapper(Match match)
- {
- // IdnMapping class with default property values.
- IdnMapping idn = new IdnMapping();
- string domainName = match.Groups[2].Value;
- try {
- domainName = idn.GetAscii(domainName);
- }
- catch (ArgumentException) {
- invalid = true;
- }
- return match.Groups[1].Value + domainName;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement