csharp:Validate email address using C#
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 | /// <summary> /// /// </summary> /// <param name="email"></param> /// <returns></returns> public bool IsValidEmail( string email) { try { var addr = new System.Net.Mail.MailAddress(email); return addr.Address == email; } catch { return false ; } } /// <summary> /// using System.ComponentModel.DataAnnotations; 4.5 over 涂聚文(Geovin Du)标注 /// </summary> /// <param name="source"></param> /// <returns></returns> public bool IsValidEmailDu( string source) { //https://referencesource.microsoft.com/#System.ComponentModel.DataAnnotations/DataAnnotations/EmailAddressAttribute.cs,54 return new EmailAddressAttribute().IsValid(source); } static Regex ValidEmailRegex = CreateValidEmailRegex(); /// <summary> /// Taken from http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx /// </summary> /// <returns></returns> private static Regex CreateValidEmailRegex() { string validEmailPattern = @"^(?!\.)(""([^""\r\\]|\\[""\r\\])*""|" + @"([-a-z0-9!#$%&'*+/=?^_`{|}~]|(?<!\.)\.)*)(?<!\.)" + @"@[a-z0-9][\w\.-]*[a-z0-9]\.[a-z][a-z\.]*[a-z]$" ; return new Regex(validEmailPattern, RegexOptions.IgnoreCase); } internal bool EmailIsValid( string emailAddress) { bool isValid = ValidEmailRegex.IsMatch(emailAddress); return isValid; } /// <summary> /// /// </summary> /// <param name="email"></param> /// <returns></returns> public bool EmailIsValidGeovin( string email) { string expression = "\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*" ; if (Regex.IsMatch(email, expression)) { if (Regex.Replace(email, expression, string .Empty).Length == 0) { return true ; } } return false ; } /// <summary> /// /// </summary> /// <param name="email"></param> /// <returns></returns> public static bool IsValidEmailTu( this string email) { string pattern = @"^(?!\.)(""([^""\r\\]|\\[""\r\\])*""|" + @"([-a-z0-9!#$%&'*+/=?^_`{|}~]|(?<!\.)\.)*)(?<!\.)" + @"@[a-z0-9][\w\.-]*[a-z0-9]\.[a-z][a-z\.]*[a-z]$" ; var regex = new Regex(pattern, RegexOptions.IgnoreCase); return regex.IsMatch(email); } /// <summary> /// /// </summary> /// <param name="emailAddress"></param> /// <returns></returns> public static bool IsValidEmailAddress( string emailAddress) { bool MethodResult = false ; try { System.Net.Mail.MailAddress m = new System.Net.Mail.MailAddress(emailAddress); MethodResult = m.Address == emailAddress; } catch //(Exception ex) { //ex.HandleException();https://stackoverflow.com/questions/1365407/c-sharp-code-to-validate-email-address } return MethodResult; } /// <summary> /// /// </summary> /// <param name="InputEmail"></param> /// <returns></returns> public static bool IsValidEmailId( string InputEmail) { Regex regex = new Regex( @"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$" ); Match match = regex.Match(InputEmail); if (match.Success) return true ; else return false ; } /// <summary> /// /// </summary> /// <param name="emailAddress"></param> /// <returns></returns> public bool ValidateEmail( string emailAddress) { string regexPattern = @"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$" ; Match matches = Regex.Match(emailAddress, regexPattern); return matches.Success; } |
哲学管理(学)人生, 文学艺术生活, 自动(计算机学)物理(学)工作, 生物(学)化学逆境, 历史(学)测绘(学)时间, 经济(学)数学金钱(理财), 心理(学)医学情绪, 诗词美容情感, 美学建筑(学)家园, 解构建构(分析)整合学习, 智商情商(IQ、EQ)运筹(学)生存.---Geovin Du(涂聚文)
分类:
CSharp code
标签:
email
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
2016-08-05 C++: read access data using ADOX.DLL and System::Data::OleDb
2016-08-05 C++: DataGridView::DataSource
2016-08-05 Software license key and activation
2013-08-05 Css:Conditional comments 条件注释
2013-08-05 SQL Server迭代求和