[英]Multiple Regex Data Annotation Validation
我的代码优先中有一个字符串字段,其中可以包含两个正则表达式之一:
([0-5]\d):([0-5]\d)\,(\d{2})
or
(\d{3}),(\d{2})
如何将它们合并在一个字段中? 我尝试使用自定义验证。 即使我仅输入字母,字段验证也始终是正确的。 我找不到我在做什么错。
[CustomResult]
public string Resultstring { get; set; }
和
public class CustomResultAttribute : ValidationAttribute
{
public override bool IsValid(object value)
{
if (value == null)
{
return false;
}
// 00:00,00
if (Regex.IsMatch(value.ToString(), @"([0-5]\d):([0-5]\d)\,(\d{2})"))
{
return true;
}
// 000,00
if (Regex.IsMatch(value.ToString(), @"(\d{3}),(\d{2})"))
{
return true;
}
return false;
}
}
using System.ComponentModel.DataAnnotations;
[RegularExpression("^([0-5]\d:[0-5]\d,\d{2})|(\d{3},\d{2})$"]
我认为在这种情况下,您可以只使用or或|
在您的正则表达式中:
([0-5]\d):([0-5]\d)\,(\d{2})|(\d{3}),(\d{2})
将其放入http://www.regexper.com/进行查看。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.