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
- TimeZone.cs
- DataGridTableCollection.cs
- _NativeSSPI.cs
- ArrangedElementCollection.cs
- Configuration.cs
- BindValidationContext.cs
- MasterPageParser.cs
- AccessedThroughPropertyAttribute.cs
- MessageBox.cs
- XmlSiteMapProvider.cs
- GridView.cs
- BuildManagerHost.cs
- RoleManagerModule.cs
- X509UI.cs
- IncrementalHitTester.cs
- StylusDownEventArgs.cs
- HtmlWindowCollection.cs
- BrowserCapabilitiesFactory.cs
- PageEventArgs.cs
- WebPartConnectionsConfigureVerb.cs
- DetailsViewDeletedEventArgs.cs
- LocatorBase.cs
- TableDetailsRow.cs
- RepeaterItem.cs
- Accessors.cs
- SystemTcpConnection.cs
- QueryCacheKey.cs
- ImportOptions.cs
- PropertyMapper.cs
- CommentAction.cs
- HttpHandlerActionCollection.cs
- WorkflowDispatchContext.cs
- ZipQueryOperator.cs
- PropertyPushdownHelper.cs
- WsrmMessageInfo.cs
- RemoveStoryboard.cs
- WindowsListViewItemCheckBox.cs
- StrongNameIdentityPermission.cs
- SeekableMessageNavigator.cs
- TextTreeObjectNode.cs
- DataGridViewCellStyleConverter.cs
- TraceListener.cs
- SimpleLine.cs
- UpdateCompiler.cs
- WmlFormAdapter.cs
- ToolStripContentPanelDesigner.cs
- EventHandlerService.cs
- SqlDataSourceConfigureSortForm.cs
- TemplateParser.cs
- SqlBulkCopyColumnMapping.cs
- BufferedWebEventProvider.cs
- GlyphRun.cs
- EventLogPermissionEntryCollection.cs
- ConnectionManagementSection.cs
- DesignerAttribute.cs
- HtmlInputRadioButton.cs
- BrowserCapabilitiesFactory.cs
- SchemaImporterExtensionElement.cs
- CheckBox.cs
- InternalConfigRoot.cs
- ValidatingPropertiesEventArgs.cs
- XmlStreamNodeWriter.cs
- ToolStripPanelDesigner.cs
- GeneralTransform3DGroup.cs
- HttpPostLocalhostServerProtocol.cs
- StrokeFIndices.cs
- SizeAnimationClockResource.cs
- SubMenuStyleCollection.cs
- TriggerActionCollection.cs
- DeferredElementTreeState.cs
- FlowLayoutPanelDesigner.cs
- ProgressBarBrushConverter.cs
- VolatileEnlistmentMultiplexing.cs
- ColumnClickEvent.cs
- WebPermission.cs
- DeclarativeCatalogPart.cs
- SrgsElementList.cs
- FilteredReadOnlyMetadataCollection.cs
- WindowManager.cs
- Automation.cs
- ArrayElementGridEntry.cs
- DataGridViewLinkColumn.cs
- CodeTypeOfExpression.cs
- CodeSubDirectoriesCollection.cs
- HttpPostedFile.cs
- WindowsToolbar.cs
- DrawingImage.cs
- FontInfo.cs
- EntitySetBaseCollection.cs
- RoleManagerEventArgs.cs
- StringExpressionSet.cs
- DataGridViewComboBoxCell.cs
- BrowserInteropHelper.cs
- FontCollection.cs
- GridViewDesigner.cs
- StrokeFIndices.cs
- CallTemplateAction.cs
- CollectionsUtil.cs
- BaseParser.cs
- MD5CryptoServiceProvider.cs