正则表达式验证器中的管道

问题描述

我正在尝试使用内置的验证器来检查属性值是否在特定的一组值中。除非我在某处缺少东西,否则没有内置属性,因此我选择了RegularExpressionAttribute

public class Foo {
    [RegularExpression(@"^A|B|AB$")]
    public string Code { get; set; }
}

我想允许ABAB作为可能的值。

如果我对其进行了验证,则AB通过,但AB失败。

Validator.TryValidateObject(foo,new ValidationContext(foo,null,null),validationResults,validateallProperties: true);

如果我更改正则表达式,将AB放在首位,那么它将成功:

[RegularExpression(@"^AB|A|B$")]

我用第一种方法做错了吗?还是这仅仅是验证者的奇怪行为?当我尝试使用另一个RegEx验证器(包括.NET RegEx.IsMatch函数)时,这似乎是正确的匹配。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)