2011-12-12 68 views
-1

这个正则表达式有问题吗?我有jQuery启用和所有这一切,没有什么是一个问题,除了这个正则表达式不起作用,出于某种原因。这个正则表达式代码验证电子邮件是否有错误?

var thereg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/; 
return thereg.test($("email").value); 
+0

http://regexlib.com http://regexlib.com/Search.aspx?k=email&c=-1&m=-1&ps=20 – madhead

+1

您不应使用正则表达式验证电子邮件,因为它不是常规语言。 – clyfe

+1

定义“不起作用”。你是否得到误报?假阴性?对于什么价值? – Quentin

回答

0

这将适合大多数邮件地址:

var thereg = /^[a-zA-Z0-9._-][email protected][a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/; 
return thereg.test($("email").value); 

http://www.zparacha.com/validate-email-address-using-javascript-regular-expression/

要获得这适用于所有地址的正则表达式,读RFC 2822http://www.regular-expressions.info/email.html

另一种检查邮件地址的方法是提取主机,并确定是否有邮件服务器正在运行。

+1

我可以收到电子邮件,但说,我的地址是无效的... – Quentin

+0

@Quentin想知道哪个邮件地址(例如)将被标记为无效,修复正则表达式。 –

+1

[email protected]将被标记为无效。修复不会修复正则表达式。还有很多其他问题。请参阅有关问题的评论。特别是见[这个问题及其接受的答案](http://stackoverflow.com/questions/201323/what-is-the-best-regular-expression-for-validating-email-addresses) – Quentin

相关问题