RegularExpressionValidator.EvaluateIsValid Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Indica se o valor no controle de entrada é válido.
protected:
override bool EvaluateIsValid();
protected override bool EvaluateIsValid ();
override this.EvaluateIsValid : unit -> bool
Protected Overrides Function EvaluateIsValid () As Boolean
Retornos
true
se o valor no controle de entrada for válido, caso contrário, false
.
Exemplos
O exemplo de código a seguir demonstra como substituir o EvaluateIsValid método em um controle de servidor personalizado para que ele sempre verifique o valor em relação à expressão para uma correspondência em um RegularExpressionValidator.
Importante
Este exemplo tem uma caixa de texto que aceita a entrada do usuário, que é uma possível ameaça à segurança. Por padrão, ASP.NET páginas da Web validam que a entrada do usuário não inclui elementos html ou script. Para obter mais informações, consulte Visão geral de explorações de script.
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
O exemplo de código a seguir demonstra como usar o CustomRegularExpressionValidatorEvaluateIsValid
controle , definido no exemplo anterior, em uma página do 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>