Code:
/ DotNET / DotNET / 8.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
- DataKey.cs
- SelectionPattern.cs
- InternalControlCollection.cs
- SqlCharStream.cs
- WebRequestModulesSection.cs
- DispatchProxy.cs
- Misc.cs
- SamlEvidence.cs
- connectionpool.cs
- Globals.cs
- CodeGenHelper.cs
- Substitution.cs
- TouchPoint.cs
- OrthographicCamera.cs
- XmlNodeList.cs
- NetPeerTcpBinding.cs
- AjaxFrameworkAssemblyAttribute.cs
- Certificate.cs
- TransformedBitmap.cs
- BufferedStream2.cs
- SystemTcpConnection.cs
- OleDbPropertySetGuid.cs
- DashStyle.cs
- KoreanCalendar.cs
- TemplatePagerField.cs
- Parameter.cs
- HwndTarget.cs
- ScriptReferenceEventArgs.cs
- Padding.cs
- ReaderWriterLock.cs
- HttpRequest.cs
- SuppressIldasmAttribute.cs
- DbConnectionFactory.cs
- UnmanagedMemoryStreamWrapper.cs
- RegexCharClass.cs
- AudioDeviceOut.cs
- PropertyChangedEventArgs.cs
- ObfuscationAttribute.cs
- DataGridViewSortCompareEventArgs.cs
- DataGridViewDataConnection.cs
- ValidationSummary.cs
- MediaPlayerState.cs
- SurrogateChar.cs
- AppDomain.cs
- UnsafeNativeMethodsCLR.cs
- ConstructorExpr.cs
- ListItemCollection.cs
- HashHelper.cs
- ServerValidateEventArgs.cs
- DataBindingCollection.cs
- GridLengthConverter.cs
- TypeSystem.cs
- MainMenu.cs
- FrugalList.cs
- ChildrenQuery.cs
- TabControlCancelEvent.cs
- NonClientArea.cs
- ProfileModule.cs
- PublisherIdentityPermission.cs
- CursorConverter.cs
- OrthographicCamera.cs
- FontCacheUtil.cs
- PipelineComponent.cs
- AbandonedMutexException.cs
- FileFormatException.cs
- DrawingContextWalker.cs
- SynchronousChannel.cs
- OneOfTypeConst.cs
- SystemIPAddressInformation.cs
- InertiaRotationBehavior.cs
- BindingList.cs
- ReaderWriterLockSlim.cs
- ValidationManager.cs
- Formatter.cs
- XmlProcessingInstruction.cs
- Rotation3D.cs
- KeyValueConfigurationCollection.cs
- ToolTip.cs
- PriorityChain.cs
- ServiceInfo.cs
- ChtmlTextWriter.cs
- HiddenFieldPageStatePersister.cs
- TemplateBindingExpressionConverter.cs
- FormattedText.cs
- NameValueSectionHandler.cs
- FieldInfo.cs
- Pair.cs
- MetafileHeader.cs
- SystemIPAddressInformation.cs
- SystemEvents.cs
- _SSPIWrapper.cs
- DesignerObject.cs
- ValueTable.cs
- srgsitem.cs
- Point4D.cs
- PhoneCallDesigner.cs
- HtmlListAdapter.cs
- SchemaImporterExtensionElementCollection.cs
- HttpCapabilitiesEvaluator.cs
- NativeActivity.cs