我的Code First中有一个字符串字段,它可以包含两个正则表达式之一:
([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;
}
}
答案 0 :(得分:3)
using System.ComponentModel.DataAnnotations;
[RegularExpression("^([0-5]\d:[0-5]\d,\d{2})|(\d{3},\d{2})$"]
答案 1 :(得分:2)
我认为在这种情况下,您可以在正则表达式中使用或|
:
([0-5]\d):([0-5]\d)\,(\d{2})|(\d{3}),(\d{2})
将其放入http://www.regexper.com/以查看。