다음을 통해 공유


RegularExpressionValidator.EvaluateIsValid 메서드

정의

입력 컨트롤의 값이 유효한지 여부를 나타냅니다.

protected:
 override bool EvaluateIsValid();
protected override bool EvaluateIsValid ();
override this.EvaluateIsValid : unit -> bool
Protected Overrides Function EvaluateIsValid () As Boolean

반환

입력 컨트롤의 값이 유효하면 true이고, 유효하지 않으면 false입니다.

예제

다음 코드 예제에서는 재정의 하는 방법에 설명 합니다 EvaluateIsValid 에서 일치 항목을 식에 대해 값을 항상 검사 하는 컨트롤을 사용자 지정 서버에서 메서드를 RegularExpressionValidator합니다.

중요

이 예제에는 사용자 입력을 허용하는 텍스트 상자가 있으므로 보안상 위험할 수 있습니다. 기본적으로 ASP.NET 웹 페이지는 사용자 입력 내용에 스크립트 또는 HTML 요소가 포함되어 있지 않은지 확인합니다. 자세한 내용은 Script Exploits Overview를 참조하세요.

using System.Web;
using System.Security.Permissions;

namespace Samples.AspNet.CS.Controls
{
  [AspNetHostingPermission(SecurityAction.Demand, Level=AspNetHostingPermissionLevel.Minimal)]
  public sealed class CustomRegularExpressionValidatorEvaluateIsValid : System.Web.UI.WebControls.RegularExpressionValidator
  {
    protected override bool EvaluateIsValid()
    {
      // Get the control to validate's validation value
      string controlValue = GetControlValidationValue(this.ControlToValidate);
      
      // If the value is null or empty, then return true
      if (controlValue == null || controlValue.Trim().Length == 0) 
      {
        return true;
      }
      else
      {
        // Else try running the Regular Expression against the value 
        // and see if there is a match.
        try 
        {
          System.Text.RegularExpressions.Match regExpMatch = System.Text.RegularExpressions.Regex.Match(controlValue, this.ValidationExpression);
          return(regExpMatch.Success && regExpMatch.Index == 0 && regExpMatch.Length == controlValue.Length);
        }
        catch 
        {
          return true;
        }
      }
    }
  }
}
Imports System.Web
Imports System.Security.Permissions

Namespace Samples.AspNet.VB.Controls
    <AspNetHostingPermission(SecurityAction.Demand, Level:=AspNetHostingPermissionLevel.Minimal)> _
    Public NotInheritable Class CustomRegularExpressionValidatorEvaluateIsValid
        Inherits System.Web.UI.WebControls.RegularExpressionValidator

        Protected Overrides Function EvaluateIsValid() As Boolean

            ' Get the control to validate's validation value
            Dim controlValue As String = GetControlValidationValue(Me.ControlToValidate)

            ' If the value is null or empty, then return true
            If controlValue Is Nothing OrElse controlValue.Trim().Length = 0 Then
                Return True
            Else
                ' Else try running the Regular Expression against the value 
                ' and see if there is a match.
                Try
                    Dim regExpMatch As System.Text.RegularExpressions.Match = System.Text.RegularExpressions.Regex.Match(controlValue, Me.ValidationExpression)
                    Return regExpMatch.Success AndAlso regExpMatch.Index = 0 AndAlso regExpMatch.Length = controlValue.Length
                Catch
                    Return True
                End Try
            End If
        End Function
    End Class
End Namespace

다음 코드 예제를 사용 하는 방법에 설명 합니다 CustomRegularExpressionValidatorEvaluateIsValid Web Forms 페이지에 앞의 예제에 정의 된 컨트롤입니다.

<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.CS.Controls" Assembly="Samples.AspNet.CS" %>
<%@ Page Language="C#" AutoEventWireup="True" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
        <title>Custom RegularExpressionValidator - EvaluateIsValid - C# Example</title>
    <script runat="server">
      void Button1_Click(Object sender, EventArgs e) 
      {
        if (Page.IsValid) 
        {
          Label1.Text = "Page is valid.";
        }
        else 
        {
          Label1.Text = "Page is invalid!";
        }
      }
    </script>
    </head>
    <body>
        <form id="Form1" method="post" runat="server">
            <h3>Custom RegularExpressionValidator - EvaluateIsValid - C# Example</h3>
       <table style="background-color:#eeeeee; padding:10">
          <tr valign="top">
             <td colspan="3">
                <asp:Label ID="Label1" 
                  Text="Enter a 5 digit zip code" 
                  runat="server"/>
             </td>
          </tr>
 
          <tr>
             <td colspan="3">
                <b>Personal Information</b>
             </td>
          </tr>
          <tr>
             <td align="right">
                Zip Code:
             </td>
             <td>
                <asp:TextBox id="TextBox1" runat="server"/>
             </td>
             <td>
                <aspSample:CustomRegularExpressionValidatorEvaluateIsValid
                  id="Regularexpressionvalidator1" 
                  runat="server"
                  ControlToValidate="TextBox1"
                  ValidationExpression="\d{5}"
                  ErrorMessage="Zip code must be 5 numeric digits"
                  Display="Static"
                  EnableClientScript="False" />
             </td>
          </tr>
          <tr>
             <td></td>
             <td>
                <asp:Button text="Button1" 
                  OnClick="Button1_Click" 
                  runat="server" ID="Button1"/>
             </td>
             <td></td>
          </tr>
       </table>
        </form>
    </body>
</html>
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.VB.Controls" Assembly="Samples.AspNet.VB" %>
<%@ Page Language="VB" AutoEventWireup="True" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
        <title>Custom RegularExpressionValidator - EvaluateIsValid - VB.NET Example</title>
    <script runat="server">
      Sub Button1_Click(sender As Object, e As EventArgs)
          If Page.IsValid Then
              Label1.Text="Page is valid."
          Else
              Label1.Text="Page is not valid!"
          End If
      End Sub
    </script>
    </head>
    <body>
        <form id="Form1" method="post" runat="server">
            <h3>Custom RegularExpressionValidator - EvaluateIsValid - VB.NET Example</h3>
       <table style="background-color:#eeeeee; padding:10">
          <tr valign="top">
             <td colspan="3">
                <asp:Label ID="Label1" 
                  Text="Enter a 5 digit zip code" 
                  runat="server"/>
             </td>
          </tr>
 
          <tr>
             <td colspan="3">
                <b>Personal Information</b>
             </td>
          </tr>
          <tr>
             <td align="right">
                Zip Code:
             </td>
             <td>
                <asp:TextBox id="TextBox1" runat="server"/>
             </td>
             <td>
                <aspSample:CustomRegularExpressionValidatorEvaluateIsValid
                  id="Regularexpressionvalidator1" 
                  runat="server"
                  ControlToValidate="TextBox1"
                  ValidationExpression="\d{5}"
                  ErrorMessage="Zip code must be 5 numeric digits"
                  Display="Static"
                  EnableClientScript="False" />
             </td>
          </tr>
          <tr>
             <td></td>
             <td>
                <asp:Button text="Button1" 
                  OnClick="Button1_Click" 
                  runat="server" ID="Button1"/>
             </td>
             <td></td>
          </tr>
       </table>
        </form>
    </body>
</html>

적용 대상

추가 정보