2011-06-26 62 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