C# MVC正则表达式验证电子邮件

C# MVC正则表达式验证电子邮件,c#,regex,asp.net-mvc,email-validation,C#,Regex,Asp.net Mvc,Email Validation,我正在尝试为MVC参数编写正则表达式验证规则, 在这种情况下,参数是“email”,我对它的规则是:^[A-z0-9\.@]*$ 规则的问题在于:“marty\invalid\u at\u gmail.com”是有效的 我需要它来禁止参数中的“\”您可以尝试@[A-Za-z0-9.\u%+-]+[A-Za-z0-9.-]+\.[A-Za-z]{2,}$”我已经编写了一个正则表达式来验证电子邮件地址 "(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!

我正在尝试为MVC参数编写正则表达式验证规则, 在这种情况下,参数是“email”,我对它的规则是:
^[A-z0-9\.@]*$

规则的问题在于:“marty\invalid\u at\u gmail.com”是有效的


我需要它来禁止参数中的“\”

您可以尝试
@[A-Za-z0-9.\u%+-]+[A-Za-z0-9.-]+\.[A-Za-z]{2,}$”
我已经编写了一个正则表达式来验证电子邮件地址

"(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\]) "

希望有帮助:)

在您的模型中,您可以使用:

如果您使用的是jQuery验证,它最终可能会在客户端使用。

我刚刚使用了以下(Perl)正则表达式进行验证。简而言之,使用正则表达式根据rfc验证电子邮件可能是短视的

(?:(?:\r\n)?[\t])*(?:(?:(?:[^()@;:\\”\[\]\000-\031]+(?:(?:(?:\r\n)?[\t]
)+|\Z |(?=[\[“()@,;:\\”\[\]]))124;“(?:[^\“\r\\]\\.\.\。。。(?:(?:\r\n)?[\t])*”(?:(?:)
\r\n)?[\t])*(?:\。(?:(?:\r\n)?[\t])*(?:[^()@;:\\”\[\]\000-\031]+(?:(?:)(
?:\r\n)?[\t])+\Z|(?=[\[“()@,;:\\”\[\]])))124;“(?:[^\“\r\\]\\\\.\。|(?:(?:\r\n)?[
\t] )*“(?:(?:(?:\r\n)?[\t])*)*@(?:(?:\r\n)?[\t])*(?:[^()@;:\\”\[\]\000-\0
31]+(?:(?:\r\n)?[\t])+\Z;(?=[\[“()@,;:\\”\[\]]))\[([^\[\]\r\\]\\\\\\\]\\\\.]*\
](?:(?:\r\n)?[\t])*(?:\。(?:(?:\r\n)?[\t])*(?:[^(),;:\”\[\]\000-\031]+
(?:(?:(?:\r\n)?[\t])+\Z;(?=[\[“()@,;:\\”\[\]]))\124\[([^\[\]\ r\\]\\\\\].*\])(?:
(?:\r\n)?[\t])*(?:[^()@,;:\\\”\[\]\000-\031]+(?:(?:(?:\r\n)?[\t])+\Z
|(?=[\[“()@,;:\\”\[\]])|“(?:[^\”\r\\]\\\.\.\124;(?:(?:\ r\n)?[\t])*”(?:(?::\r\n)
?[\t])*)*\(?:(?:\r\n)?[\t])*)|(?:[^()@;:\”\[\]\000-\031]+(?:(?)?
:(?:\r\n)?[\t])+\Z;(?=[\[“()@,;:\\”\[\]]))。“(?:[^\”\r\\]\\\\.\.\124;(?:(?::\ r\n)?
[\t])*“(?:(?:(?:\r\n)?[\t])*:(?:(?:\r\n)?[\t])*(?:(?:(?:[^()@;:\\”\[\]
\000-\031]+(?:(?:(?:\r\n)?[\t])+\Z;(?=[\[”()@;:\\“\[\]]))。“(?:[^\”\r\\]|
\\(?:(?:\r\n)?[\t])*(?:(?:\r\n)?[\t])*(?:\(?:(?:\r\n)?[\t])*(?:[^()
@,;:\“\[\]\000-\031]+(?:(?:(?:\r\n)?[\t])+\Z;(?=[\[“()@,;:\”))。”
(?:[^\”\r\\]\\。(?:(?:\r\n)?[\t])*“(?:(?:\r\n)?[\t])*)*@(?:(?:\r\n)?[\t]
)*(?:[^()@,;:\\”\[\]\000-\031]+(?:(?:(?:\r\n)?[\t])+\Z;(?=[\[”()@,;:\\
“\[\]])\\[([^\[\]\r\\]\\\].*\](?:(?:\r\n)?[\t])*(?:\(?:(?:\r\n)?[\t])*(?:。)?
:[^()@;:\\”\[\]\000-\031]+(?:(?:(?:\r\n)?[\t])+\124;\ Z;(?=[\[”),;:\”\[
\]]))|\[([^\[\]\r\\]\\\].*](?:(?:\r\n)?[\t])*)*(?:[^()@;:\”\[\]\000-
\031]+(?:(?:\r\n)?[\t])+\Z;(?=[\[“()@,;:\\\”\[\]]))。“(?:[^\\”\r\\\]\\\”|(
(?:(?:\r\n)?[\t])*“(?:(?:\r\n)?[\t])*\(?:(?:\r\n)?[\t])*)(?:,\s*(
?:(?:[^()@,;:\\”\[\]\000-\031]+(?:(?:\r\n)?[\t])+\Z;(?=[\[“()@,;:\\
“\[\]])\”(?:[^\”\r\\]\\\.(?:(?:\r\n)?[\t])*(?:(?:(?:\r\n)?[\t])*(?:\。(?:)(
(?:\r\n)?[\t])*(?:[^()@;:\\”\[\]\000-\031]+(?:(?:(?:\r\n)?[\t])+\Z;(?:)=[
\[“()@,;:\\\”\[\]])|“(?:[^\”\r\\]\\\.\124;(?:(?:\ r\n)?[\t])*”(?:(?:\r\n)?[\t
])*))*@(?:(?:\r\n)?[\t])*(?:[^()@;:\\”\[\]\000-\031]+(?:(?:(?:\r\n)?[\t
])+|\Z |(?=[\[“()@,;:\\\”\[\]]))\[([^\[\]\r\\]\\\\\].*](?:(?:\r\n)?[\t])*)(?
:\。(?:(?:\r\n)?[\t])*(?:[^()@;:\“\[\]\000-\031]+(?:(?:\r\n)?[\t])+|
\Z |(?=[\[“()@,;:\\”\[\]]))\[([^\[\]\r\\]\\\\].*](?:(?:\r\n)?[\t])*)*(?:
[^()@;:\\”\[\]\000-\031]+(?:(?:(?:\r\n)?[\t])+\124;\ Z;(?=[\[“()@;:\”)\[\
]]))|“(?:[^\”\r\\]\\.\。(?:(?:\r\n)?[\t])*”(?:(?:\r\n)?[\t])*)*\(?:(?:(?:\r\n)?[\t]):(
?:\r\n)?[\t])*)*)?;\s*)


使用
^[A-z0-9.@]*$
验证电子邮件不能保证有效的电子邮件地址。
ThisIsAnInvalidEmailId@invalid.com
将与该正则表达式匹配,但该电子邮件id有效。

你的正则表达式应该是
^[^@]+@[^@]+$
,然后检查它是否有效,向该电子邮件地址发送邮件。如果你收到的回复电子邮件有效


如果您想防止用户出错,您可以使用


Ha..我的字符串的问题是-使用A-z(大写和小写) 我所需要的只是用a-zA-Z替换它以满足我的需要

    [Required(ErrorMessage = "Email address is required")]
    [StringLength(50, ErrorMessage="Max 50 characters")]
    [RegularExpression( "^[a-z0-9_\\+-]+(\\.[a-z0-9_\\+-]+)*@[a-z0-9-]+(\\.[a-z0-9]+)*\\.([a-z]{2,4})$" , ErrorMessage = "Invalid email format." )]

    public string EmailAddress { get; set; }
请看,它非常有用,并且是演示中使用的代码示例的链接

不管怎样,这就是演示中使用的模式:

^(([A-za-z]+[\s]{1}[A-za-z]+)|([A-Za-z]+))$

重点是我需要从参数中删除“\”。它可能是一个简单的“用户名”或“电子邮件”。该参数作为URL参数传递,电子邮件和用户名都是唯一的用户标识符。我需要一个正则表达式来匹配这两个参数,或者是一个简单的字符串(没有反斜杠),或者是一封电子邮件(没有反斜杠)回答你的问题:
A-z
是一个错误,它应该是
A-Za-z
。看看你的-\介于大写
A
和小写
z
之间。这比正则表达式更好。验证电子邮件id的唯一原因是纠正任何拼写错误,如
user@gmall.com
电子邮件地址ssAttribute
是冗余的!
ThisIsAnInvalidEmailId@invalid.com
会匹配,但它有效吗!@Anirudh,为什么
ThisIsAnInvalidEmailId@invalid.com
?invalid我想说的是,使用上述正则表达式验证电子邮件并不能保证电子邮件有效。如果用户输入
user@gmall.comm
而不是
user@gmail.com
。你的正则表达式会匹配它!@Anirudh,是的,你是对的。但是有没有办法在不发送邮件的情况下检查电子邮件是否有效。如果so@Anirudh-因为我们是学究-发送邮件并从用户处获得响应(或点击链接)并不保证它是“有效的”-只是在某些时候它是有效的。不过,您可以帮助用户猜测
email@g
可能无效。同时提供代码解释以及如何解决问题?请在此处解释:知道我使用的是我的模式,而不是解释中的模式这是解释的模式:^[\w-\.\u\+%]+@(?:[\ w-]+\.++++[\w]{2,6}$如果需要,也可以使用:)
^(([A-za-z]+[\s]{1}[A-za-z]+)|([A-Za-z]+))$