Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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; ////// [ 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 { ///Checks if the value of the associated input control matches the pattern /// of a regular expression. ////// [ 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; } } ///Indicates the regular expression assigned to be the validation criteria. ////// /// 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; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// 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; ////// [ 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 { ///Checks if the value of the associated input control matches the pattern /// of a regular expression. ////// [ 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; } } ///Indicates the regular expression assigned to be the validation criteria. ////// /// 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; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- connectionpool.cs
- AutomationPropertyInfo.cs
- ComplexTypeEmitter.cs
- ProxyWebPartConnectionCollection.cs
- Number.cs
- MinMaxParagraphWidth.cs
- DataServiceQuery.cs
- OrderedDictionaryStateHelper.cs
- BindingExpression.cs
- PingReply.cs
- BooleanFacetDescriptionElement.cs
- AsymmetricAlgorithm.cs
- Camera.cs
- LassoHelper.cs
- WebPermission.cs
- SafeBuffer.cs
- NullReferenceException.cs
- QilCloneVisitor.cs
- ConnectionPoint.cs
- CodeBinaryOperatorExpression.cs
- ProjectionAnalyzer.cs
- ApplicationHost.cs
- TextEditorThreadLocalStore.cs
- ComboBox.cs
- SqlBooleanMismatchVisitor.cs
- DrawListViewSubItemEventArgs.cs
- UntypedNullExpression.cs
- HostingPreferredMapPath.cs
- Matrix.cs
- GridViewUpdateEventArgs.cs
- SqlConnectionHelper.cs
- PropertyValueUIItem.cs
- HttpListenerPrefixCollection.cs
- CustomAttribute.cs
- HttpRawResponse.cs
- WebPartMinimizeVerb.cs
- EntityReference.cs
- XPathMultyIterator.cs
- SHA256.cs
- HttpChannelHelper.cs
- TemplateKeyConverter.cs
- HtmlFormParameterWriter.cs
- DictionaryEditChange.cs
- BamlTreeMap.cs
- FunctionImportMapping.ReturnTypeRenameMapping.cs
- VirtualPathProvider.cs
- BulletedList.cs
- DateTimePicker.cs
- EDesignUtil.cs
- SatelliteContractVersionAttribute.cs
- TableCell.cs
- TranslateTransform3D.cs
- SqlCacheDependencyDatabaseCollection.cs
- BasicExpressionVisitor.cs
- DbProviderFactory.cs
- ManagedWndProcTracker.cs
- CalendarModeChangedEventArgs.cs
- IgnoreSectionHandler.cs
- UserPersonalizationStateInfo.cs
- ColumnReorderedEventArgs.cs
- SQLDateTime.cs
- InputGestureCollection.cs
- TreeViewCancelEvent.cs
- CorrelationToken.cs
- DefaultWorkflowLoaderService.cs
- DataFormats.cs
- CustomError.cs
- DataGridViewRowHeaderCell.cs
- SqlClientWrapperSmiStreamChars.cs
- SplitterPanel.cs
- PageContentAsyncResult.cs
- GiveFeedbackEvent.cs
- ValueChangedEventManager.cs
- Directory.cs
- CodeAccessPermission.cs
- QilExpression.cs
- DispatcherExceptionEventArgs.cs
- StrokeNodeOperations.cs
- SourceSwitch.cs
- Animatable.cs
- NamespaceList.cs
- HotSpotCollectionEditor.cs
- Barrier.cs
- TextEffectResolver.cs
- PeerNameRecordCollection.cs
- EventLogConfiguration.cs
- ControlCachePolicy.cs
- XDeferredAxisSource.cs
- HelpInfo.cs
- DeferredReference.cs
- EntityContainerEmitter.cs
- ISFClipboardData.cs
- Scheduling.cs
- BindingMAnagerBase.cs
- SerialPort.cs
- SafeNativeMethods.cs
- HttpRequest.cs
- BufferCache.cs
- SiteMapProvider.cs
- CompModSwitches.cs