电子邮件地址验证。这有效吗?

时间:2013-11-08 15:32:09

标签: asp.net regex email email-validation

我正在使用asp.net验证控件来验证电子邮件地址。电子邮件地址存在问题,因为它具有以下字符。 “ - ”。例如,电子邮件地址w.-a.wsdf.com将因其中的“.-”而无法验证。我正在寻找禁止这个但却找不到的电子邮件标准。我应该将asp.net正则表达式更改为自定义的,以允许这个或者这不是有效的电子邮件地址吗?

我现在使用的正则表达式是:\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

5 个答案:

答案 0 :(得分:0)

你会得到很多答案。这个一直很好用我:

/\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i

最初发现于Michael Hartl的Rails书中

答案 1 :(得分:0)

^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$

答案 2 :(得分:0)

正则表达式很棒,但正如我的评论在其他答案中所示,使用它们验证电子邮件地址并非易事。

根据我的经验,我建议:

  • 坚持使用最简单的电子邮件验证正则表达式^.+@.+$并发送包含激活链接的确认电子邮件;

  • 完全避免使用正则表达式并使用像EmailVerify for .NET这样的库,它会公开一个自定义的,精细调整的有限状态机,用于根据相关的(所有)验证电子邮件地址IETF标准加一次性,DNS,SMTP,邮箱测试。

显然你可以混合两种选择,也许可以避免使用正则表达式,但无论如何都要发送确认链接。

免责声明:我是EmailVerify for .NET的技术负责人,这是validating email addresses的Microsoft .NET组件。

答案 3 :(得分:0)

下面的正则表达式禁止w.-a.wsdf.com

using System.Text.RegularExpressions;

public static bool IsValidEmail(string email)
{
    return Regex.IsMatch(email, @"\A[a-z0-9]+([-._][a-z0-9]+)*@([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,4}\z")
        && Regex.IsMatch(email, @"^(?=.{1,64}@.{4,64}$)(?=.{6,100}$).*");
}

请参阅validate email address using regular expression in C#

答案 4 :(得分:0)

在html中输入文本输入和这样的按钮输入 现在,当单击该按钮时,将调用JavaScript函数SubmitFunction()。现在在此函数中编写波纹管代码。



function checkEmail() {

    var email = document.getElementById('txtEmail');
    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

    if (!filter.test(email.value)) {
    alert('Please provide a valid email address');
    email.focus;
    return false;
 }
}

* 其作品*