I would like to know if a way exists in asp.net mvc 2, to have multiple regular expression on a proprety. For example :
[RegularExpression(\"[^0-9]\", Error
The best solution is of course to create a custom attribute that inherits from RegularExpressionAttribute
but sets different attribute usage settings. The main setting is AllowMultiple
that you need to set to true
.
[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, AllowMultiple=true)]
public class MultiRegularExpressionAttribute: RegularExpressionAttribute
{
...
}
You would use this attribute just like you use the existing RegularExpressionAttribute
, but you'd have the ability to put multiple of them on the same property.
Try this,
[RegularExpression("[^0-9]|[^<>]{2,}", ErrorMessageResourceName = ValidationMessageResourceNames.OnlyDigits, ErrorMessageResourceType = typeof(ValidationMessages))]
public string City { get; set; }
Here '|' has been used as OR condition to match
Something like this:
public class DigitsAttribute : RegularExpressionAttribute
{
public DigitsAttribute()
: base("[^0-9]")
{
}
}
public class SpecialCharsAttribute : RegularExpressionAttribute
{
public SpecialCharsAttribute()
: base("[^<>]{2,}")
{
}
}
Use:
[Digits]
[SpecialChars]
public string City { get; set; }