mvc数据注释正则表达式

时间:2011-06-21 20:22:52

标签: c# asp.net-mvc entity-framework passwords data-annotations

我刚开始搞乱使用regularrexpressions,但基本上这个(我在网上找到btw)应该要求密码在8到10之间,但每当我试一试并输入正确的长度时,它就是仍显示错误消息。有任何想法吗? 我还需要在验证中包含1个小写,1个大写和1个数字。

public class password : IValidatableObject
{
    [Required]
    [RegularExpression("(?=^.{8,10}$)", ErrorMessage = "Password is invalid.")]
    public string ConfirmPWD { get; set; }
    [Required(ErrorMessage="Confirm Password field is required.")]
    public string ConfirmPWD { get; set; }

    public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
    {
        if (ConfirmPWD != ConfirmPWD )
            yield return new ValidationResult("Not identical.");
    }
}

2 个答案:

答案 0 :(得分:1)

你可能想要这样的东西:

[RegularExpression(@"^.{8,10}$", ErrorMessage = "Must be between 8 and 10 characters.")]

答案 1 :(得分:0)

尝试".{8,10}"。此外,更具体的错误消息可能对您的用户有所帮助。

编辑:想一想为什么不只是使用StringLengthAttribute来...

[StringLength(10, MinLength = 8, ErrorMessage = "Password must be between 8 and 10 characters")]

然后您可以使用正则表达式来处理更具体的规则,例如所需的复杂性。