-1

メールアドレスを検証する次のコードがあります。

<asp:TextBox ID="txtPersonalEmail" runat="server" Text='<%# Bind("PersonalEmail") %>' Width="185px" />                      
<%-- validate for a valid email address entered--%>
<asp:RegularExpressionValidator ID="EmailValidator" runat="server" ErrorMessage="*This is not a valid email address" ValidationExpression="\S+@\S+\.\S+" ControlToValidate="txtPersonalEmail"/>

メールアドレスは必須ではありませんが、メールアドレスを入力する場合は、正しい形式である必要があります。現時点では、間違った形式の電子メール アドレスを入力すると、エラー メッセージが返されますが、テキスト ボックスの値は引き続き送信できます。

不正な形式の電子メールが送信されるのを防ぎながら、空白の値を許可する方法について何か提案はありますか?

4

3 に答える 3

1

RegularExpressionValidatorは間違いなくあなたが望むものです。または、保証されている場合も使用できますCustomValidator。バリデーターで問題が発生する場合は、別の正規表現を使用することをお勧めします。

これはかなりうまくいきます:

ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"

この特定のバリデータで利用できるかどうかは覚えていませんが、ValidateEmptyText活用できるプロパティがあるかもしれません:

ValidateEmptyText="false"
于 2013-10-15T15:29:38.663 に答える
0

RequiredFieldValidatorRegularExpressionValidatorの両方で検証したい。

RequiredFieldValidatorは、テキスト ボックスが空白かどうかを検証します。

RegularExpressionValidatorは、テキスト ボックスに入力された電子メール アドレスが有効かどうかを検証します。

<asp:TextBox ID="EmailTextBox" runat="Server" />
<asp:RequiredFieldValidator 
   ControlToValidate="EmailTextBox" Display="Dynamic" 
   Text="(Required)"
   ErrorMessage="Email is required." 
   runat="Server" 
   ID="EmailRequiredFieldValidator" />
<asp:RegularExpressionValidator 
   ControlToValidate="EmailTextBox" 
   Text="(Invalid)"
   ValidationExpression="\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" 
   ErrorMessage="The e-mail address you specified is not well-formed."
   runat="Server" 
   ID="EmailRegularExpressionValidator"
   Display="Dynamic" />
于 2013-10-15T15:32:21.113 に答える