正则表达式数据注释验证属性失败

时间:2014-08-05 21:41:52

标签: regex asp.net-mvc data-annotations

我希望将以下模型属性配置为接受最大长度为50,最小长度为7且仅允许数字的字符串。

[Display(Name="My Number Property"),
 StringLength(50, ErrorMessage = "Too Long, try again."),
 RegularExpression(@"\d{7,50}?, ErrorMessage = "Digits Only Please.")]
public string MyModelProperty
{
    get
    {
        return this.myModelProperty;
    }
    set
    {
        this.myModelProperty = value;
    }
}

我必须这样做是因为在以下所有值中,该模型使该模型无效。

" 0" " 0123456789" " 01234567890123456789" " 01234567890123456789012345678901234567890123456789"

1 个答案:

答案 0 :(得分:1)

通过添加以下锚点来更改RegularExpression

[Display(Name="My Number Property"),
 StringLength(50, ErrorMessage = "Too Long, try again."),
 RegularExpression(@"^\d{7,50}$", ErrorMessage = "Digits Only Please.")]

顺便说一下,你也有语法错误:

RegularExpression(@"\d{7,50}?, ErrorMessage = "Digits Only Please.")
                             ^-- it's missing a quote

您可以查看 documentation

中的语法