Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / UI / WebControls / RegularExpressionValidator.cs / 1 / RegularExpressionValidator.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
/*
*/
namespace System.Web.UI.WebControls {
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Text.RegularExpressions;
using System.Drawing.Design;
using System.Web;
using System.Security.Permissions;
using System.Web.Util;
///
/// Checks if the value of the associated input control matches the pattern
/// of a regular expression.
///
[
ToolboxData("<{0}:RegularExpressionValidator runat=\"server\" ErrorMessage=\"RegularExpressionValidator\">{0}:RegularExpressionValidator>")
]
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)]
public class RegularExpressionValidator : BaseValidator {
///
/// Indicates the regular expression assigned to be the validation criteria.
///
[
WebCategory("Behavior"),
Themeable(false),
DefaultValue(""),
Editor("System.Web.UI.Design.WebControls.RegexTypeEditor, " + AssemblyRef.SystemDesign, typeof(UITypeEditor)),
WebSysDescription(SR.RegularExpressionValidator_ValidationExpression)
]
public string ValidationExpression {
get {
object o = ViewState["ValidationExpression"];
return((o == null) ? String.Empty : (string)o);
}
set {
try {
Regex.IsMatch(String.Empty, value);
}
catch (Exception e) {
throw new HttpException(
SR.GetString(SR.Validator_bad_regex, value), e);
}
ViewState["ValidationExpression"] = value;
}
}
///
///
/// AddAttributesToRender method
///
protected override void AddAttributesToRender(HtmlTextWriter writer) {
base.AddAttributesToRender(writer);
if (RenderUplevel) {
string id = ClientID;
HtmlTextWriter expandoAttributeWriter = (EnableLegacyRendering) ? writer : null;
AddExpandoAttribute(expandoAttributeWriter, id, "evaluationfunction", "RegularExpressionValidatorEvaluateIsValid", false);
if (ValidationExpression.Length > 0) {
AddExpandoAttribute(expandoAttributeWriter, id, "validationexpression", ValidationExpression);
}
}
}
///
///
/// EvaluateIsValid method
///
protected override bool EvaluateIsValid() {
// Always succeeds if input is empty or value was not found
string controlValue = GetControlValidationValue(ControlToValidate);
Debug.Assert(controlValue != null, "Should have already been checked");
if (controlValue == null || controlValue.Trim().Length == 0) {
return true;
}
try {
// we are looking for an exact match, not just a search hit
Match m = Regex.Match(controlValue, ValidationExpression);
return(m.Success && m.Index == 0 && m.Length == controlValue.Length);
}
catch {
Debug.Fail("Regex error should have been caught in property setter.");
return true;
}
}
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DataGridDesigner.cs
- XmlReaderDelegator.cs
- PropertyValueChangedEvent.cs
- DataGridRelationshipRow.cs
- ServiceContractListItem.cs
- DbInsertCommandTree.cs
- DocumentXPathNavigator.cs
- Cell.cs
- ProxyWebPart.cs
- RandomDelaySendsAsyncResult.cs
- TTSVoice.cs
- Constants.cs
- ItemMap.cs
- GcSettings.cs
- X509Utils.cs
- WSFederationHttpBinding.cs
- Process.cs
- InputLanguageSource.cs
- AnnotationStore.cs
- ManipulationBoundaryFeedbackEventArgs.cs
- HtmlTableCellCollection.cs
- ButtonRenderer.cs
- CheckoutException.cs
- ExtendedPropertyCollection.cs
- PeerConnector.cs
- SafeProcessHandle.cs
- Console.cs
- ImageKeyConverter.cs
- ErrorFormatterPage.cs
- TypeSystem.cs
- FileDataSourceCache.cs
- FontWeights.cs
- HttpListenerException.cs
- SettingsContext.cs
- DiagnosticTraceSchemas.cs
- InkCanvasSelectionAdorner.cs
- TrustSection.cs
- PermissionListSet.cs
- SqlCommandSet.cs
- SqlDataSourceFilteringEventArgs.cs
- SqlReferenceCollection.cs
- XmlElementElement.cs
- OledbConnectionStringbuilder.cs
- DebugTraceHelper.cs
- ECDsa.cs
- CustomLineCap.cs
- CheckedListBox.cs
- HtmlInputControl.cs
- ApplyImportsAction.cs
- SymmetricCryptoHandle.cs
- PrinterUnitConvert.cs
- ImageCodecInfoPrivate.cs
- IInstanceTable.cs
- AssemblyBuilder.cs
- SamlAssertionDirectKeyIdentifierClause.cs
- WebDisplayNameAttribute.cs
- TextRunCacheImp.cs
- ViewRendering.cs
- NameValuePermission.cs
- FileFormatException.cs
- SiteMapProvider.cs
- RootBuilder.cs
- XsltCompileContext.cs
- MD5.cs
- SecurityDocument.cs
- WasHttpModulesInstallComponent.cs
- ArrayWithOffset.cs
- DbConnectionPoolGroup.cs
- StatusBarPanel.cs
- EdmScalarPropertyAttribute.cs
- BridgeDataReader.cs
- ListViewDataItem.cs
- SiteMapSection.cs
- SoapSchemaExporter.cs
- MissingSatelliteAssemblyException.cs
- DropSource.cs
- EdmValidator.cs
- ManagedIStream.cs
- CompilationLock.cs
- SiteMapProvider.cs
- AssertFilter.cs
- GraphicsContext.cs
- CmsInterop.cs
- AddInControllerImpl.cs
- SiteMapNodeCollection.cs
- DataGridViewCellStyleBuilderDialog.cs
- PasswordRecoveryDesigner.cs
- FilteredAttributeCollection.cs
- codemethodreferenceexpression.cs
- TrackingProfile.cs
- HostingEnvironment.cs
- DataStreams.cs
- SoapIncludeAttribute.cs
- LifetimeServices.cs
- ContextMarshalException.cs
- basenumberconverter.cs
- ArgumentDesigner.xaml.cs
- XmlSerializerFaultFormatter.cs
- TableDetailsRow.cs
- ReferenceService.cs