Code:
/ FX-1434 / FX-1434 / 1.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
- AmbiguousMatchException.cs
- Msec.cs
- DoubleLinkList.cs
- TimerElapsedEvenArgs.cs
- TableLayoutPanelDesigner.cs
- AppSecurityManager.cs
- _ConnectStream.cs
- Underline.cs
- SevenBitStream.cs
- DocumentSequence.cs
- X509Certificate2.cs
- AssemblyLoader.cs
- shaperfactoryquerycachekey.cs
- ToolStripSeparatorRenderEventArgs.cs
- ButtonBaseAutomationPeer.cs
- ResolveMatchesApril2005.cs
- CodeSnippetTypeMember.cs
- SqlDataSourceCustomCommandPanel.cs
- XmlILIndex.cs
- MenuItemBinding.cs
- WebResponse.cs
- ProjectionPruner.cs
- AutoGeneratedFieldProperties.cs
- WizardPanel.cs
- CodeNamespace.cs
- BufferModeSettings.cs
- XmlSchemaObjectTable.cs
- DefaultEventAttribute.cs
- ToolStripTextBox.cs
- XPathMultyIterator.cs
- ListViewTableRow.cs
- WebEvents.cs
- Pointer.cs
- DataGridState.cs
- WebPartHelpVerb.cs
- MimeTypeAttribute.cs
- ParameterBuilder.cs
- TextElementEditingBehaviorAttribute.cs
- XmlSchemaDocumentation.cs
- ThrowHelper.cs
- SendMailErrorEventArgs.cs
- UnsafeNetInfoNativeMethods.cs
- Substitution.cs
- Math.cs
- InternalTypeHelper.cs
- FilterQuery.cs
- Sql8ExpressionRewriter.cs
- DoubleCollectionValueSerializer.cs
- basenumberconverter.cs
- CustomTrackingQuery.cs
- NativeRightsManagementAPIsStructures.cs
- TypeExtensionConverter.cs
- CachedCompositeFamily.cs
- TextRunCacheImp.cs
- LinkTarget.cs
- _FtpDataStream.cs
- SiteMapPath.cs
- SqlRecordBuffer.cs
- TextRangeSerialization.cs
- handlecollector.cs
- SymbolEqualComparer.cs
- WrappedReader.cs
- ThreadInterruptedException.cs
- QilExpression.cs
- HyperLink.cs
- KeysConverter.cs
- TableParaClient.cs
- HttpListener.cs
- XPathNavigator.cs
- ProfilePropertyMetadata.cs
- NavigationWindowAutomationPeer.cs
- TimestampInformation.cs
- BaseInfoTable.cs
- FutureFactory.cs
- IgnoreSectionHandler.cs
- TypeConverterHelper.cs
- FileIOPermission.cs
- MembershipValidatePasswordEventArgs.cs
- ClosableStream.cs
- SetMemberBinder.cs
- PolicyUnit.cs
- ManagedWndProcTracker.cs
- PrtCap_Public_Simple.cs
- BulletDecorator.cs
- XmlSerializationGeneratedCode.cs
- SettingsPropertyCollection.cs
- WebControl.cs
- EntityFunctions.cs
- compensatingcollection.cs
- NamedPermissionSet.cs
- Vector3DConverter.cs
- TemplatePagerField.cs
- SHA256.cs
- ResumeStoryboard.cs
- SemanticResultKey.cs
- WebPartsPersonalizationAuthorization.cs
- DirectoryRedirect.cs
- GuidelineSet.cs
- SymbolMethod.cs
- StringArrayConverter.cs