2010-12-18 13 views
0

ユーザーが電子メールアドレスを入力するテキストボックスで検証を設定する必要があります。これは必須フィールドではありません。テキストボックスには、デフォルトのテキスト(「電子メールアドレス」)が含まれています。フィールドが必要でない場合のasp.netの検証

有効なメールアドレスが入力されていることを確認するためのコードを投稿しました。

<asp:RegularExpressionValidator CssClass="errorpopup" Display="Dynamic" ID="regexpEmail" 
    ValidationGroup="mySubmit" runat="server" ErrorMessage="<strong>Please enter a valid email address.</strong>" 
    ControlToValidate="tbEmail" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" 
    SetFocusOnError="true" /> 
+1

あなたの質問/問題は? – Oded

+0

テキストボックスの値が空白または "電子メールアドレス"の場合、フォームの送信を許可するためにバリデーターを修正する必要があります。 – Tom

答えて

2

ちょうどそれをオプションにする(?:...)?で正規表現全体を囲みます。

しかし、あなたは非常に良い電子メール検証正規表現を使用していません。別に電子メールアドレスを確実に正規表現で検証することはできませんという事実から、あなたはまだ、すべての有効なアドレスをキャッチしません

^(?:[\w.%+-][email protected](?:[\w-]+\.)+[A-Za-z]{2,6}\s*|Email address)?$ 

これを使用して、少し良く行うことができ、そしていくつかの無効なアドレスと一致します。しかし、約4〜5行のコードにまたがるRFC 2822の実装正規表現の短さは、これはおそらく良い妥協点です。

関連する問題