0

可能重复:
使用正则表达式验证电子邮件地址
电子邮件验证 - 正则表达式

我使用下面的正则表达式来验证电子邮件地址。但是我们发现这个正则表达式接受了“*”或“/”,但它不应该!

Regex.IsMatch(email, 
   @"^(?("")(""[^""]+?""@)|(([0-9a-z]((\.(?!\.))|[-!#\$%&'\*\+/=\?\^`\{\}\|~\w])*)(?<=[0-9a-z])@))" +
   @"(?(\[)(\[(\d{1,3}\.){3}\d{1,3}\])|(([0-9a-z][-\w]*[0-9a-z]*\.)+[a-z0-9]{2,17}))$",
   RegexOptions.IgnoreCase, 
   TimeSpan.FromMilliseconds(250));

请我需要你的帮助来改进 RE 以不允许“*”或“/”仅供参考上面的代码在 C# 中

4

1 回答 1

1

你需要一个大的修复..

如果您想验证电子邮件地址正则表达式不是正确的选择。

按照SLaks的建议使用MailAddress

try 
{
   address = new MailAddress(address).Address;
   //address is valid here
} 
catch(FormatException) 
{
   //address is invalid
}

但如果你沉迷于正则表达式..就这样做

.*@.*
于 2013-01-26T10:30:19.793 回答