您的位置:首页 > 大数据 > 人工智能

.net(正则表达式)检查EMAIL

2013-07-29 10:27 211 查看
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]{2,17}))$",
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;
}
}
public class Application{public static void Main(){RegexUtilities util = new RegexUtilities();string[] emailAddresses = { "david.jones@proseware.com", "d.j@server1.proseware.com","jones@ms1.proseware.com", "j.@server1.proseware.com","j@proseware.com9", "js#internal@proseware.com","j_9@[129.126.118.1]", "j..s@proseware.com","js*@proseware.com", "js@proseware..com","js@proseware.com9", "js@proseware.com9", "j.s@server1.proseware.com" };foreach (var emailAddress in emailAddresses) {if (util.IsValidEmail(emailAddress))Console.WriteLine("Valid: {0}", emailAddress);elseConsole.WriteLine("Invalid: {0}", emailAddress);}}}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: