2011-06-26 5 views
0

jquery電子メールバリデーターを探しています - >シンプルで完全な正規表現を使用せずに!
私は以下のような強力なライブラリを見つけました:
bassistance jquery-plugin-validatio
このライブラリには私にとって多くの不必要な機能があります!
私はtxtemailを与え、それが真か偽かをチェックする関数が必要です。
このプラグインでどうすればいいですか?
私のaspxコードは以下のようなものです:jquery EMAIL Validator - >ただメール

<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の関数を導入し、trueまたはfalseを返すように感謝だろう!

事前に

おかげで(正規表現トラスタブル、クロスブラウザの互換性である?)私はこの問題についてstackoverflowの中にいくつかの重複スレッドがある知っているが、そのうちの一つが、このプラグインについてで、もう一つは正規表現を使用してについてです

+3

電子メールアドレスを検証するための正規表現がすでに確立されています。調査され、完全にテストされたものを選んでください:) –

+0

jqueryの機能を使って別の方法を示すことに感謝します! – MoonLight

+0

これは正規表現の完璧な使用例だと主張したいと思います。 jQueryには、問題をさらに改善する魔法の弾丸はありません。 validateプラグインは、電子メールの検証に正規表現を使用します。 –

答えて

1

電子メールアドレスを検証するために確立された正規表現を使用できます。 jQueryの検証は、入力フィールドの値は、電子メールの正規表現パターンにマッチしない場合は、.test()呼び出しはfalseを返します

$(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()); 

    }); 

}); 

その後、フォームsubmitイベントハンドラで検証を置くかもしれないプラグインなしで簡単な検証をやりたいと思った場合<form>のデフォルトアクションを取り消す(つまり、それが送信されないようにする)とともに、DOMツリーの上にイベントをバブルさせないようにします。

正規表現を使用してバリデーターを作成し、フィールドに対してこれを設定してから、フィールドが有効でないときにフォームを送信できないようにすることができます。しかし、私はあなたがRegularExpressionValidatorコントロールを使用することを提案しているので、あなたはASP.NET webformsを使用していることがわかります。

<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コントロールと組み合わせてクライアント側のvalidateプラグインを使用して、サーバー側の検証を実装します。

+0

は本当にこのスレッドの貴重な時間を感謝しています!ご多幸を祈る... – MoonLight

関連する問題