多重Regex数据注释验证
本文关键字:验证 注释 数据 Regex 多重 | 更新日期: 2023-09-27 18:13:31
我在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-5]'d):([0-5]'d)',('d{2})|('d{3}),('d{2})
放入http://www.regexper.com/查看
using System.ComponentModel.DataAnnotations;
[RegularExpression("^([0-5]'d:[0-5]'d,'d{2})|('d{3},'d{2})$"]