有谁知道ASP.NET中的电子邮件验证程序使用的正则表达式是什么?
答案 0 :(得分:96)
以下是使用.NET中的 RegularExpressionValidator Internet电子邮件地址的正则表达式
\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
顺便说一句,如果您在页面上放置 RegularExpressionValidator 并转到设计视图,则会有一个 ValidationExpression 字段,您可以使用该字段从表达式列表中进行选择由.NET提供。一旦你选择了你想要的表达式,就会有一个验证表达式:文本框,其中包含用于验证器的正则表达式
答案 1 :(得分:24)
我不再验证电子邮件地址格式了(好的,我检查以确保有一个at符号和一段时间之后)。这是因为正确格式化的地址甚至是他们的电子邮件?您应该向他们发送电子邮件并要求他们单击链接或验证代码。这是验证电子邮件地址有效并且某人实际上能够接收电子邮件的唯一真实方式。
答案 2 :(得分:18)
单纯正则表达式很难正确验证电子邮件地址。 Here是一个漂亮可怕的正则表达式,据说可以实现RFC822, chapter 6,即有效电子邮件地址的规范。
不是一个真正的答案,但可能与你想要完成的事情有关。
答案 3 :(得分:12)
我们可以使用RegularExpressionValidator来验证电子邮件地址格式。您需要在RegularExpressionValidator的ValidationExpression属性中指定正则表达式。所以它看起来像
<asp:RegularExpressionValidator ID="validateEmail"
runat="server" ErrorMessage="Invalid email."
ControlToValidate="txtEmail"
ValidationExpression="^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$" />
同样在按钮或链接的事件处理程序中,您需要检查!Page.IsValid。 在此处查看示例代码:sample code
此外,如果您不想使用RegularExpressionValidator,您可以编写简单的validate方法,并在该方法中使用System.Text.RegularExpressions命名空间的RegEx类。
检查示例:
答案 4 :(得分:4)
对于正则表达式,我首先看一下这个网站:RegExLib.com
答案 5 :(得分:1)
除了使用Validator进行客户端验证之外,我还建议进行服务器端验证。
bool isValidEmail(string input)
{
try
{
var email = new System.Net.Mail.MailAddress(input);
return true;
}
catch
{
return false;
}
}