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
- __TransparentProxy.cs
- IndexedGlyphRun.cs
- CommandPlan.cs
- XPathNode.cs
- SetState.cs
- DistinctQueryOperator.cs
- EditorAttributeInfo.cs
- XamlReader.cs
- SocketSettings.cs
- ImageCollectionEditor.cs
- FileDialog.cs
- ChannelSettingsElement.cs
- IdentitySection.cs
- RepeatButtonAutomationPeer.cs
- FileSystemInfo.cs
- SymbolPair.cs
- GridViewRowEventArgs.cs
- UnsafeNativeMethods.cs
- SplineQuaternionKeyFrame.cs
- GridPatternIdentifiers.cs
- CodeCommentStatement.cs
- EntityType.cs
- WebContext.cs
- MemberMaps.cs
- Workspace.cs
- SqlGenerator.cs
- StubHelpers.cs
- TemplateBindingExpression.cs
- TokenizerHelper.cs
- ExpressionBindings.cs
- WsdlInspector.cs
- brushes.cs
- ReferencedAssembly.cs
- XamlSerializerUtil.cs
- SoapParser.cs
- LiteralLink.cs
- DateTime.cs
- sortedlist.cs
- InputMethodStateChangeEventArgs.cs
- WrapperSecurityCommunicationObject.cs
- InputBinder.cs
- UriScheme.cs
- StackSpiller.Generated.cs
- AssemblyCache.cs
- ErrorTolerantObjectWriter.cs
- SqlUtil.cs
- BufferManager.cs
- RayHitTestParameters.cs
- SimpleWebHandlerParser.cs
- OrderedDictionaryStateHelper.cs
- BypassElement.cs
- XmlWhitespace.cs
- Viewport3DAutomationPeer.cs
- HashCoreRequest.cs
- SqlFormatter.cs
- ConnectionPointCookie.cs
- BulletedList.cs
- QilTernary.cs
- ToolBar.cs
- XmlUtf8RawTextWriter.cs
- ListViewCancelEventArgs.cs
- DocumentApplicationJournalEntry.cs
- CatalogZoneBase.cs
- MouseBinding.cs
- StrokeNode.cs
- CompositeFontFamily.cs
- RSAPKCS1SignatureDeformatter.cs
- UpdateCommand.cs
- HttpProfileBase.cs
- BaseResourcesBuildProvider.cs
- StreamWithDictionary.cs
- ProviderBase.cs
- SqlUnionizer.cs
- DbUpdateCommandTree.cs
- SmtpAuthenticationManager.cs
- ToolStripContainer.cs
- StringPropertyBuilder.cs
- ObjectItemConventionAssemblyLoader.cs
- TimeSpanFormat.cs
- InkCanvasInnerCanvas.cs
- DbConnectionClosed.cs
- DataContext.cs
- TextElementEnumerator.cs
- ModuleBuilderData.cs
- IntAverageAggregationOperator.cs
- IODescriptionAttribute.cs
- HealthMonitoringSection.cs
- TableDetailsCollection.cs
- StylusDownEventArgs.cs
- Brush.cs
- ActiveXContainer.cs
- TransferRequestHandler.cs
- ToolStripItemImageRenderEventArgs.cs
- PerformanceCounterNameAttribute.cs
- ConvertersCollection.cs
- GridViewRow.cs
- ArrangedElement.cs
- XmlCodeExporter.cs
- WorkflowDebuggerSteppingAttribute.cs
- DataPagerCommandEventArgs.cs