在asp.net c#上为正则表达式验证器构建多个电子邮件正则表达式?

时间:2012-10-02 20:58:53

标签: c# asp.net regex expression validation

我正在尝试在asp.net上创建一个表单,您可以在其中发送电子邮件。我想要一个文本框,我可以在其中输入我要发送消息的所有电子邮件地址......

但是我想在那里添加验证器,以便用户始终具有正确的语法,因此,在c#上使用该字符串并正确发送消息。

目前,我有一个针对单个电子邮件地址的验证器......

<asp:RegularExpressionValidator ID="RegularExpressionValidator5" runat="server" 
    ControlToValidate="tbxAlClEmail" ErrorMessage="E-mail Invalido" 
        Font-Bold="True" ForeColor="Red" 
        ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" 
        ValidationGroup="vgpNuevoCliente">
</asp:RegularExpressionValidator>

所以,我们可以看到.... email = \ w +([ - +。'] \ w +) @ \ w +([ - 。] \ w +)。\ w +([ - 。] \ w +)*

(我知道很难找到一个可以验证所有类型的电子邮件地址的常规表达式......但这必须这样做)

现在我想将这个正则表达式添加到asp.net验证器:

电子邮件((,|;)[SPACE] *电子邮件)*

我想要的结果示例:

john@hotmail.com,amy @ yahoo.com,diana @ hotmail.com; alicia@gmail.com

我希望你能帮助我...... 提前致谢

1 个答案:

答案 0 :(得分:1)

您所拥有的内容无法验证电子邮件地址。

使用正则表达式进行电子邮件验证非常难以正确进行,并且在验证器的网络上有数百个示例可以接近......但仍然不完美。

但这只是问题的一小部分。您绝对是最好的选择是放弃尝试验证地址并简单地发送消息,同时告诉用户哪些地址失败。

如果你做得对,那么你不会在TO字段中包含每个地址,而是向每个地址发送不同的消息。这样可以很容易地报告错误。

当然,即便如此,如果向其发送了错误的电子邮件地址,许多邮件服务器也被配置为甚至不响应,而只是黑洞消息。没有多少验证等可以通过它。

为了好玩,您可能需要完整阅读以下内容,以便了解完整的问题:http://www.regular-expressions.info/email.html