Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- XhtmlBasicCommandAdapter.cs
- AvTrace.cs
- SemanticAnalyzer.cs
- GridItemCollection.cs
- FrameworkTemplate.cs
- MsmqIntegrationProcessProtocolHandler.cs
- InvalidPropValue.cs
- DataObjectSettingDataEventArgs.cs
- CompileXomlTask.cs
- WpfKnownType.cs
- Bold.cs
- mediapermission.cs
- EventRecord.cs
- BrushValueSerializer.cs
- ADMembershipProvider.cs
- VisualStyleRenderer.cs
- SqlMethodAttribute.cs
- sqlcontext.cs
- CreateRefExpr.cs
- TrustLevelCollection.cs
- WebPartEventArgs.cs
- EntityDataSourceQueryBuilder.cs
- ConnectionManagementSection.cs
- ColumnCollection.cs
- InputLanguageSource.cs
- RijndaelManagedTransform.cs
- EventMap.cs
- ControlCollection.cs
- BitStack.cs
- TraversalRequest.cs
- OdbcParameter.cs
- TextChange.cs
- HttpProcessUtility.cs
- DataBindingsDialog.cs
- TdsValueSetter.cs
- Matrix3D.cs
- CalendarDay.cs
- ButtonFlatAdapter.cs
- ItemContainerPattern.cs
- ToolTipAutomationPeer.cs
- SqlAggregateChecker.cs
- OneOfTypeConst.cs
- BulletedList.cs
- ApplicationSecurityInfo.cs
- TreeViewCancelEvent.cs
- SmtpTransport.cs
- WindowsTokenRoleProvider.cs
- CDSCollectionETWBCLProvider.cs
- Config.cs
- ToolStripContainerActionList.cs
- ValidatingReaderNodeData.cs
- DesignerActionUI.cs
- DataGridClipboardHelper.cs
- BindUriHelper.cs
- CultureTableRecord.cs
- AttachedPropertyBrowsableAttribute.cs
- ProcessProtocolHandler.cs
- VScrollBar.cs
- SevenBitStream.cs
- MasterPageCodeDomTreeGenerator.cs
- InstallerTypeAttribute.cs
- MemberInitExpression.cs
- ViewBase.cs
- assertwrapper.cs
- TextViewElement.cs
- NamespaceImport.cs
- MaskDescriptors.cs
- FileDialog.cs
- UIPermission.cs
- Accessible.cs
- BamlReader.cs
- WindowsAuthenticationEventArgs.cs
- InputChannelBinder.cs
- DataPagerFieldItem.cs
- OdbcErrorCollection.cs
- PtsCache.cs
- RightsManagementPermission.cs
- StrokeNodeData.cs
- ControlBuilderAttribute.cs
- SafeLocalAllocation.cs
- XPathCompileException.cs
- LabelDesigner.cs
- TcpClientSocketManager.cs
- SystemException.cs
- TransactionBridge.cs
- TypeElement.cs
- Axis.cs
- XsltLibrary.cs
- MsmqTransportSecurity.cs
- Crypto.cs
- XmlNodeChangedEventManager.cs
- ReferencedType.cs
- MulticastNotSupportedException.cs
- Dynamic.cs
- CreateUserWizardAutoFormat.cs
- StringWriter.cs
- DataSourceControlBuilder.cs
- ObjectListDesigner.cs
- ProgressChangedEventArgs.cs
- Root.cs