Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / DEVDIV / depot / DevDiv / releases / whidbey / QFE / 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. //------------------------------------------------------------------------------ //// 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- EventLogWatcher.cs
- ConsoleCancelEventArgs.cs
- ProxyHwnd.cs
- _PooledStream.cs
- DecodeHelper.cs
- ReflectionUtil.cs
- FamilyTypeface.cs
- ContentPosition.cs
- GroupQuery.cs
- SessionPageStatePersister.cs
- QueryOperatorEnumerator.cs
- GPRECTF.cs
- Touch.cs
- TypeCodeDomSerializer.cs
- XmlDeclaration.cs
- XPathAxisIterator.cs
- TextTrailingCharacterEllipsis.cs
- ResXDataNode.cs
- OperatingSystem.cs
- SoapIgnoreAttribute.cs
- ModelFactory.cs
- HtmlInputHidden.cs
- DefaultBindingPropertyAttribute.cs
- Overlapped.cs
- OleStrCAMarshaler.cs
- CodeIdentifiers.cs
- Util.cs
- DPAPIProtectedConfigurationProvider.cs
- WebReferenceOptions.cs
- RootNamespaceAttribute.cs
- ExpressionEditorAttribute.cs
- TargetInvocationException.cs
- SecondaryIndexList.cs
- MenuBase.cs
- Directory.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- SourceSwitch.cs
- WebPartCancelEventArgs.cs
- HideDisabledControlAdapter.cs
- TakeOrSkipQueryOperator.cs
- Primitive.cs
- ProjectionNode.cs
- SaveLedgerEntryRequest.cs
- OrderByBuilder.cs
- ScrollEventArgs.cs
- Evidence.cs
- SafeCloseHandleCritical.cs
- RoleGroupCollection.cs
- HandlerBase.cs
- ToolStripSettings.cs
- ReadonlyMessageFilter.cs
- Maps.cs
- TemplateParser.cs
- MorphHelper.cs
- IndexObject.cs
- DetailsViewCommandEventArgs.cs
- CompModSwitches.cs
- AssemblyHash.cs
- MenuItem.cs
- CommentEmitter.cs
- TaskExceptionHolder.cs
- OdbcConnectionOpen.cs
- ToolStripOverflow.cs
- SqlBuffer.cs
- TokenCreationException.cs
- ResourceReader.cs
- UnmanagedMarshal.cs
- TemplatedMailWebEventProvider.cs
- AsyncMethodInvoker.cs
- WindowAutomationPeer.cs
- UserInitiatedNavigationPermission.cs
- Ipv6Element.cs
- FilterQuery.cs
- TextEditorSpelling.cs
- Point4DValueSerializer.cs
- _SSPIWrapper.cs
- WebAdminConfigurationHelper.cs
- CalendarButtonAutomationPeer.cs
- RewritingProcessor.cs
- mediaeventshelper.cs
- SHA384Managed.cs
- NameObjectCollectionBase.cs
- UnsafeNativeMethods.cs
- PenContexts.cs
- MatrixCamera.cs
- IndexOutOfRangeException.cs
- DeflateEmulationStream.cs
- WindowsGraphics2.cs
- CollectionViewGroupRoot.cs
- WindowsGraphics.cs
- GeometryHitTestResult.cs
- DBAsyncResult.cs
- Privilege.cs
- unitconverter.cs
- ComPlusDiagnosticTraceSchemas.cs
- TreeNodeSelectionProcessor.cs
- RecognitionResult.cs
- Oid.cs
- FunctionImportMapping.cs
- ObjectTokenCategory.cs