2011-06-26 108 views
0

我正在寻找一个jquery电子邮件验证器 - >简单和完整,无需使用正则表达式!
我发现了一个功能强大的库如下:
bassistance jquery-plugin-validatio
但是这个库对我来说有很多不必要的功能!
除了我只需要一个函数来给它我的txtemail并检查它是否为真或假。
我怎么用这个插件做到这一点?
我的aspx代码象下面这样:jquery电子邮件验证 - >只是电子邮件

<head runat="server"> 
    <title></title> 
    <script src="Scripts/jquery-1.6.1.min.js" type="text/javascript"></script> 
    <script src="Scripts/jquery.validate.min.js" type="text/javascript"></script> 
    <script type="text/javascript"> 

     $().ready(function() { 
      $("#commentForm").validate(); 
     }); 
    </script> 
    <style type="text/css"> 
     #commentForm 
     { 
      width: 500px; 
     } 
    </style> 
</head> 
<body> 
    <form runat="server" id="commentForm"> 
    <fieldset> 
     <legend>Please provide your email address</legend> 
     <p> 
      <label for="cemail"> 
       E-Mail (required)</label> 
      <asp:TextBox ID="TextBox1" runat="server" CssClass="required email"></asp:TextBox> 
     </p> 
    </fieldset> 
    </form> 
</body> 
</html> 

我会感激给我介绍一个函数在jQuery中接受电子邮件字符串,返回真或假的!

我知道在这个问题计算器一些重复的主题,但其中一个是关于这个插件,另一个是关于使用正则表达式(为正则表达式信得过和跨浏览器的兼容性?)

在此先感谢

+3

已经建立了用于验证电子邮件地址的正则表达式。选择一个已经过研究并经过全面测试的:) –

+0

将不胜感激,以显示另一种方式与jQuery的能力! – MoonLight

+0

我认为这是正则表达式的完美用例。 jQuery没有任何更好的解决问题的魔力。 validate插件使用正则表达式进行电子邮件验证。 –

回答

1

您可以使用建立的正则表达式验证电子邮件地址。如果想要做简单的验证,而不jQuery的验证插件,那么你可能把验证的形式submit事件处理程序

$(function() { 

    // regex from http://fightingforalostcause.net/misc/2006/compare-email-regex.php 
    var emailRegex = /^[-a-z0-9~!$%^&*_=+}{\'?]+(\.[-a-z0-9~!$%^&*_=+}{\'?]+)*@([a-z0-9_][-a-z0-9_]*(\.[-a-z0-9_]+)*\.(aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|travel|mobi|[a-z][a-z])|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(:[0-9]{1,5})?$/i; 

    // capture the field to test 
    var textBoxToTest = $('input.required.email'); 

    // set up a submit event handler 
    $('#commentForm').submit(function() { 

     return emailRegex.test(textBoxToTest.val()); 

    }); 

}); 

如果输入字段的值不匹配对电子邮件的正则表达式模式,.test()调用将返回false ,这将取消0​​的默认操作(即阻止它提交),并且还阻止在DOM树上进一步冒泡事件。

现在,您还可以通过使用正则表达式创建验证器并将其设置为对照字段,然后让validate插件负责在字段无效时阻止提交表单,从而将其与validate插件一起显示。但是,我看到您正在使用ASP.NET webforms,所以我建议使用RegularExpressionValidator控件。喜欢的东西

<head runat="server"> 
    <title></title> 
    <style type="text/css"> 
     #commentForm 
     { 
      width: 500px; 
     } 
    </style> 
</head> 
<body> 
    <form runat="server" id="commentForm"> 
    <fieldset> 
     <legend>Please provide your email address</legend> 
     <p> 
      <label for="cemail"> 
       E-Mail (required)</label> 
      <asp:TextBox ID="TextBox1" runat="server" CssClass="required email"></asp:TextBox> 
      <asp:RegularExpressionValidator 
       ID="regexpName" runat="server"  
       ErrorMessage="Please enter a valid email address" 
       ControlToValidate="TextBox1"  
       ValidationExpression="/^[-a-z0-9~!$%^&*_=+}{\'?]+(\.[-a-z0-9~!$%^&*_=+}{\'?]+)*@([a-z0-9_][-a-z0-9_]*(\.[-a-z0-9_]+)*\.(aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|travel|mobi|[a-z][a-z])|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(:[0-9]{1,5})?$/i" 
       EnableClientScript="true" /> 
     </p> 
    </fieldset> 
    </form> 
</body> 
</html> 

控制将要同时兼顾了客户端和服务器端的验证(你总是总是要验证服务器方太),所以它可能是你最简单的选择,或者你可以将客户端的验证插件与CustomValidator控件结合使用来实现服务器端验证。

+0

真的很感激你把宝贵的时间放在这个线程!最好的祝愿... – MoonLight