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
- DSASignatureDeformatter.cs
- LinkDesigner.cs
- QuaternionValueSerializer.cs
- WebScriptMetadataMessageEncoderFactory.cs
- ParentUndoUnit.cs
- AxWrapperGen.cs
- ListBox.cs
- PropertyKey.cs
- OracleInfoMessageEventArgs.cs
- CTreeGenerator.cs
- StateDesigner.Helpers.cs
- TimeSpanValidator.cs
- IndicShape.cs
- UnknownExceptionActionHelper.cs
- SmtpTransport.cs
- ProxyAttribute.cs
- ColumnBinding.cs
- CustomAssemblyResolver.cs
- Funcletizer.cs
- MatchingStyle.cs
- PartitionResolver.cs
- BasicViewGenerator.cs
- HTMLTagNameToTypeMapper.cs
- ConcurrentBag.cs
- WebFormsRootDesigner.cs
- RequestCachePolicyConverter.cs
- RecordsAffectedEventArgs.cs
- EditingMode.cs
- VariableValue.cs
- SpeechDetectedEventArgs.cs
- StringFunctions.cs
- DiscoveryProxy.cs
- TableDetailsRow.cs
- IPEndPoint.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- DelegateTypeInfo.cs
- TriggerBase.cs
- GPRECTF.cs
- PageVisual.cs
- PropertyCondition.cs
- FixUpCollection.cs
- MenuCommand.cs
- DependencyProperty.cs
- IPAddress.cs
- ChangeProcessor.cs
- UnmanagedBitmapWrapper.cs
- EnumMember.cs
- TaskFormBase.cs
- RemotingSurrogateSelector.cs
- SortDescription.cs
- UInt64.cs
- DtrList.cs
- DataGridViewCellContextMenuStripNeededEventArgs.cs
- HelpInfo.cs
- _ConnectionGroup.cs
- TextReader.cs
- EventLogPermission.cs
- ActiveXSite.cs
- ArrowControl.xaml.cs
- ApplicationBuildProvider.cs
- Globals.cs
- columnmapkeybuilder.cs
- SchemaCollectionPreprocessor.cs
- ErrorFormatterPage.cs
- HttpGetProtocolReflector.cs
- ReliableOutputSessionChannel.cs
- Types.cs
- ViewRendering.cs
- WindowShowOrOpenTracker.cs
- Light.cs
- FieldNameLookup.cs
- Atom10FormatterFactory.cs
- BuilderPropertyEntry.cs
- UserControlParser.cs
- ProjectionPath.cs
- RewritingSimplifier.cs
- Compiler.cs
- ObjectItemCollection.cs
- QueryGenerator.cs
- XsltConvert.cs
- TextDpi.cs
- DataGridViewLinkCell.cs
- NetWebProxyFinder.cs
- PartialCachingControl.cs
- TransformPatternIdentifiers.cs
- XmlAttributeCollection.cs
- SemanticAnalyzer.cs
- GridView.cs
- QilReplaceVisitor.cs
- SqlBulkCopyColumnMappingCollection.cs
- SrgsGrammar.cs
- XmlSchemaAnnotated.cs
- HostedElements.cs
- SiteMapNodeCollection.cs
- HtmlInputPassword.cs
- HelpKeywordAttribute.cs
- DataBinding.cs
- XmlNamespaceDeclarationsAttribute.cs
- SiteMapPathDesigner.cs
- ToolZone.cs