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
- HtmlShim.cs
- ServiceNotStartedException.cs
- ObjectDisposedException.cs
- RoleManagerEventArgs.cs
- ReaderContextStackData.cs
- PrivateUnsafeNativeCompoundFileMethods.cs
- ColumnMapProcessor.cs
- ProgressPage.cs
- ProcessHostFactoryHelper.cs
- HostProtectionPermission.cs
- RootBuilder.cs
- ReliabilityContractAttribute.cs
- UTF8Encoding.cs
- XPathEmptyIterator.cs
- TransformDescriptor.cs
- BmpBitmapDecoder.cs
- DataControlLinkButton.cs
- Accessors.cs
- CollectionViewGroup.cs
- AppSettingsReader.cs
- CodeCompileUnit.cs
- ToolBarButtonDesigner.cs
- CorrelationExtension.cs
- DependencyPropertyConverter.cs
- Win32Interop.cs
- GeometryGroup.cs
- BinaryWriter.cs
- ParentQuery.cs
- RequestCacheEntry.cs
- Columns.cs
- MethodAccessException.cs
- AppSettingsExpressionBuilder.cs
- RefreshEventArgs.cs
- DataTablePropertyDescriptor.cs
- BmpBitmapDecoder.cs
- InvalidPropValue.cs
- XmlToDatasetMap.cs
- DbProviderConfigurationHandler.cs
- TreeNodeBindingCollection.cs
- ProfileService.cs
- IRCollection.cs
- SqlCacheDependency.cs
- PassportAuthenticationEventArgs.cs
- IsolationInterop.cs
- DescriptionCreator.cs
- QilInvokeLateBound.cs
- StringFreezingAttribute.cs
- DLinqDataModelProvider.cs
- sqlcontext.cs
- RawKeyboardInputReport.cs
- TrustManagerPromptUI.cs
- BaseContextMenu.cs
- ValidationRule.cs
- DateTimeConverter2.cs
- UpdatePanelTrigger.cs
- AddressHeaderCollection.cs
- HttpCacheVaryByContentEncodings.cs
- ListenerUnsafeNativeMethods.cs
- TagMapInfo.cs
- DefaultBinder.cs
- ProtectedConfiguration.cs
- MailBnfHelper.cs
- IImplicitResourceProvider.cs
- XMLUtil.cs
- ComplexObject.cs
- CurrencyWrapper.cs
- AuthorizationRuleCollection.cs
- PathHelper.cs
- TextCompositionManager.cs
- MetadataCache.cs
- ModelItemImpl.cs
- ResolveDuplex11AsyncResult.cs
- AsyncPostBackErrorEventArgs.cs
- ScrollChangedEventArgs.cs
- CollectionView.cs
- SmtpException.cs
- OleDbWrapper.cs
- SqlBuffer.cs
- CursorConverter.cs
- ClientBuildManagerCallback.cs
- _TimerThread.cs
- MetafileHeader.cs
- FileDialogCustomPlaces.cs
- ApplicationProxyInternal.cs
- URL.cs
- EventLogEntry.cs
- CodeBinaryOperatorExpression.cs
- Matrix3DValueSerializer.cs
- ResourceDescriptionAttribute.cs
- ElementUtil.cs
- COM2IPerPropertyBrowsingHandler.cs
- Container.cs
- PhysicalAddress.cs
- CheckBox.cs
- FixedBufferAttribute.cs
- SystemNetHelpers.cs
- XmlHierarchicalEnumerable.cs
- XmlResolver.cs
- CursorInteropHelper.cs
- BrowserCapabilitiesFactoryBase.cs