2011-06-20 50 views
-3

我正在使用C#和jQuery来验证输入到表单中的一堆电子邮件。正则表达式电子邮件验证问题?

public const string Email = "^([a-zA-Z0-9_\\\\-\\\\.]+)@((\\\\[[0-9]{1,3}\\\\.[0-9]{1,3}\\\\.[0-9]{1,3}\\\\.)|(([a-zA-Z0-9\\\\-]+\\\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})$";

这是我使用的是什么,但我似乎得到错误的记录?任何人都可以帮我吗?

感谢

+2

也许你可以提供一个示例“错误的条目”,由您的代码不正确验证? – richardtallent

回答

2

它看起来像你双反斜杠你的反斜杠。这是有帮助的使用@语法字符串声明,以避免这种混乱:

public const string Email = @"^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})$"; 

你会没有双逃逸接近:

public const string Email = @"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})$"; 

\[匹配@后大概也是一个错,留下...

public const string Email = @"^([a-zA-Z0-9_\-\.]+)@(([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})$"; 
+0

aha!非常感谢 - 是的,这正是问题所在:)不知道为什么我得到了downvoted :( – Tom

0

This page有什么正则表达式使用匹配的电子邮件地址的大讨论,而这些变异体的优点。

0
+0

这并不妨碍test @ test通过,因为服务器到服务器,这是可以的。 – Scott

+0

明年开始test @ test将是一个合法的电子邮件地址。 http://www.upi.com/Business_News/2011/06/20/ICANN-approves-dot-changes/UPI-29491308583048/ –

0

我用这个。工作很好:)

/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i 
0

试试这个家伙,

public const string Email= "^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$"; 
0

这是正则表达式,我在我的代码中使用..所有的方式测试..处理每个场景。

(([ ]*[A-Za-z0-9]([_]{1}[A-Za-z0-9])*([.]{1}[A-Za-z0-9])*([-]{1}[A-Za-z0-9])*)+\\@([A-Za-z0-9_\\-\\.])+\\.([A-Za-z]{2,4}))[ ]*(((;|,|; | ;| ; | , | ,){1}"+"([ ]*[A-Za-z0-9]([_]{1}[A-Za-z0-9])*([.]{1}[A-Za-z0-9])*([-]{1}[A-Za-z0-9])*)+\\@([A-Za-z0-9_\\-\\.])+\\.([A-Za-z]{2,4}[ ]*))*)[ ]* 
+1

tld如'博物馆“或”旅行“呢?还有像'jean-françois'这样的名字? – Toto

相关问题