如何在Jquery中validation电子邮件?

我写了以下联系表单validation脚本。 如何validation电子邮件字段?

 div.contactForm { width:370px; margin:0 auto; } form.contactUs label { display:block; } form.contactUs input { margin-bottom:10px; } input.submit { margin-top:10px; } input.error { background:#FF9B9B; border:1px solid red; } div.errorMessage { color:#f00; padding:0 0 20px; }    $(document).ready(function() { $('.errorMessage').hide(); $('.submit').click(function() { var name = $('input.name').val(); var email = $('input.email').val(); var phone = $('input.phone').val(); if (name == '') { $('input.name').addClass('error'); $('input.name').keypress(function(){ $('input.name').removeClass('error'); }); } if (email == '') { $('input.email').addClass('error'); $('input.email').keypress(function(){ $('input.email').removeClass('error'); }); } if (phone == '') { $('input.phone').addClass('error'); $('input.phone').keypress(function(){ $('input.phone').removeClass('error'); }); } if (name == '' || email == '' || phone == '') { $('.errorMessage').fadeIn('medium'); return false; } }); });  

Contact Us

Please enter all required fields.

编辑

通过validation,我的意思是输入的值必须在适当的位置包含“@”和“。”。

此外,我不想使用任何额外的插件。

如果您不想使用任何插件,可以使用RegEx。

 var testEmail = /^[A-Z0-9._%+-]+@([A-Z0-9-]+\.)+[AZ]{2,4}$/i; if (testEmail.test(valueToTest)) // Do whatever if it passes. else // Do whatever if it fails. 

这将为您提供最多的电子邮件。 关于使用RegExvalidation电子邮件的有趣读物。

你可以在这里测试脚本: http : //jsfiddle.net/EFfCa/

如果你真的不想使用插件,我发现这个方法非常好:

 function validateEmail(email) { var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/; if( !emailReg.test( email ) ) { return false; } else { return true; } } 

的jsfiddle

http://thejimgaudet.com/articles/support/web/jquery-e-mail-validation-without-a-plugin/

我目前正在使用番茄酱进行表单validation。 还有bassassist的插件 。 检查插件,它将为您节省数小时的正则表达式编写代码。

input.email块更改为:

  if (email == '') { $('input.email').addClass('error'); $('input.email').keypress(function(){ $('input.email').removeClass('error'); }); $('input.email').focusout(function(){ $('input.email').filter(function(){ return this.value.match(/your email regex/); }).addClass('error'); }); } 

说明:将focusout操作添加到input.email表单元素,使用RFC822标准validation电子邮件字符串。 如果无法通过,则添加“错误”类。

我没有在我的浏览器上测试这个,但它应该适用于jQuery> 1.4。

编辑:我删除了正则表达式,将您最喜欢的那个放在那里。