Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / UI / WebControls / RegularExpressionValidator.cs / 1305376 / 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.Web.Util; ////// [ ToolboxData("<{0}:RegularExpressionValidator runat=\"server\" ErrorMessage=\"RegularExpressionValidator\">{0}:RegularExpressionValidator>") ] 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.Web.Util; ////// [ ToolboxData("<{0}:RegularExpressionValidator runat=\"server\" ErrorMessage=\"RegularExpressionValidator\">{0}:RegularExpressionValidator>") ] 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
- DoubleAnimation.cs
- WebConfigurationHostFileChange.cs
- FrameworkElementFactory.cs
- CardSpacePolicyElement.cs
- PopupRoot.cs
- DecoderReplacementFallback.cs
- PackagePart.cs
- XmlLinkedNode.cs
- Bezier.cs
- ProviderUtil.cs
- ListViewItem.cs
- GenerateScriptTypeAttribute.cs
- QueryInterceptorAttribute.cs
- ProcessThreadCollection.cs
- WebEncodingValidatorAttribute.cs
- RoutedEventConverter.cs
- FormViewDesigner.cs
- TerminateSequence.cs
- XamlVector3DCollectionSerializer.cs
- Array.cs
- CollectionChangeEventArgs.cs
- BulletChrome.cs
- NativeCppClassAttribute.cs
- RsaSecurityToken.cs
- SourceFilter.cs
- SharedDp.cs
- PersianCalendar.cs
- HuffmanTree.cs
- DoubleCollectionConverter.cs
- PocoPropertyAccessorStrategy.cs
- Utils.cs
- InputProviderSite.cs
- UnsafeNativeMethodsMilCoreApi.cs
- CompoundFileStreamReference.cs
- DataSourceControlBuilder.cs
- InvalidContentTypeException.cs
- HtmlHead.cs
- CircleHotSpot.cs
- documentation.cs
- PersonalizableTypeEntry.cs
- TextRangeEdit.cs
- Keywords.cs
- returneventsaver.cs
- InteropAutomationProvider.cs
- InternalCache.cs
- DataObjectMethodAttribute.cs
- externdll.cs
- FocusManager.cs
- LogStore.cs
- SqlUnionizer.cs
- PenContexts.cs
- IdentityNotMappedException.cs
- SqlWebEventProvider.cs
- TextTreeExtractElementUndoUnit.cs
- TextMetrics.cs
- CollectionView.cs
- CompilationRelaxations.cs
- DataServiceRequest.cs
- ScrollChrome.cs
- PagerStyle.cs
- BamlVersionHeader.cs
- SingleStorage.cs
- StaticResourceExtension.cs
- CalendarModeChangedEventArgs.cs
- _ProxyChain.cs
- PointCollection.cs
- ExponentialEase.cs
- ContentPlaceHolder.cs
- ScriptReferenceBase.cs
- DataException.cs
- HttpAsyncResult.cs
- LongAverageAggregationOperator.cs
- ViewValidator.cs
- SrgsGrammar.cs
- DataContract.cs
- PersonalizationProviderCollection.cs
- SemanticTag.cs
- OptionUsage.cs
- MDIWindowDialog.cs
- SafeSecurityHelper.cs
- SymmetricAlgorithm.cs
- SynchronizationLockException.cs
- CompilerState.cs
- BevelBitmapEffect.cs
- XPathScanner.cs
- XamlFxTrace.cs
- XmlLoader.cs
- ConfigUtil.cs
- ConfigXmlCDataSection.cs
- MediaContext.cs
- Ray3DHitTestResult.cs
- BindableTemplateBuilder.cs
- DbDataReader.cs
- PropertyItem.cs
- CodeTryCatchFinallyStatement.cs
- PreApplicationStartMethodAttribute.cs
- MarkedHighlightComponent.cs
- MULTI_QI.cs
- SafeProcessHandle.cs
- GACMembershipCondition.cs