- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我一直在我的代码中使用 EmailAddressAttribute(来自 System.ComponentModel.DataAnnotations)并且它运行良好。 BA 和测试人员需要了解有关如何验证电子邮件地址的规则。我可以制作正则表达式的头尾,因为它有 900 个字符长,而且我的正则表达式技能有限。
谁能用简单的术语向我解释一下规则?
最佳答案
基本上,在电子邮件地址字符串中,“@”符号前后都有文本。
文本中的每个字符应匹配 2 个规则:
[a-z]|\d|[!#\$%&'*+-/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]
第一条规则意味着文本中的字符可以是以下之一:
!#\$%&'*+-/=\?\^_`{\|}~
\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF
然后文本由分隔。
应该是这样的:
private static Regex _regex = new Regex(@"^
(
(
([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+
(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*
)
|
(
(\x22)
(
(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?
(
([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|
(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))
)
)*
(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)
)
)
@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture);
关于c# - EmailAddressAttribute 验证规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16975042/
我使用 ASP.NET MVC 5 并且需要对电子邮件进行验证。 我有以下 View 模型: public class RegisterViewModel { [Required] [
我正在 windows store 8.1 下开发一个应用程序,我需要使用电子邮件验证。我发现在 .Net Framework 4.5 的命名空间 System.ComponentModel.Data
我正在使用 EmailAddressAttribute用于我的模型。 问题是当我使用(完全有效的)电子邮件地址时 óscar@yahoo.com 它说它是无效的。 型号: public class F
.NET 4.6.1 中的 EmailAddressAttribute 允许以点结尾。这意味着以下电子邮件:someone@google.com。已验证。对于 Microsoft,此电子邮件有效。但是
我一直在我的代码中使用 EmailAddressAttribute(来自 System.ComponentModel.DataAnnotations)并且它运行良好。 BA 和测试人员需要了解有关如何
我有一个类说“请求”。它有两个属性,如下所示。收件人的电子邮件验证工作正常。但是,它不适用于收件人。 [EmailAddress] public string Recipient { get; set
我的 PersonDTO 类中有属性: [EmailAddress] public string Email { get; set; } 它工作得很好,除了我想允许空字符串作为我的模型的值,如果我从客
我希望能够做到这一点: string email = "some@email.com"; bool isValid = IsValidEmail(email); //returns true ...但
我的模型对象上有一个字符串属性,名为 EmailAddress .我正在使用 Html.EditorFor呈现此页面上所有字符串属性的输入字段,以及一个工作正常的自定义编辑器模板。但是,我添加 Ema
我是一名优秀的程序员,十分优秀!