How to add multiline option on RegularExpression attribute?

后端 未结 3 382
面向向阳花
面向向阳花 2021-01-18 19:37

I am using:

[RegularExpression(@\"^(\"\"|\\[)?[a-zA-Z0-9\']{1,125}(\"\"|\\])?$\")]

to make sure each line of a multiline textbox is properl

3条回答
  •  Happy的楠姐
    2021-01-18 19:53

    It doesn't look like the RegularExpressionAttribute supports passing options, so here's one that allows it (compile checked but not tested):

    [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter, 
                             AllowMultiple = false)]
    public class RegExAttribute : ValidationAttribute
    {
        public string Pattern { get; set; }
        public RegexOptions Options { get; set; }
    
        public RegExAttribute(string pattern) : this(pattern, RegexOptions.None) { }
        public RegExAttribute(string pattern, RegexOptions options)
        {
            Pattern = pattern;
            Options = options;
        }
    
        public override bool IsValid(object value)
        {
            return Regex.IsMatch(value.ToString(), Pattern, Options);
        }
    }
    

提交回复
热议问题