【问题标题】:mvc dataannotation regularexpressionmvc 数据注解正则表达式
【发布时间】:2011-09-19 20:45:24
【问题描述】:

我刚开始搞乱正则表达式,但基本上这个(我在网上找到的顺便说一句)应该要求密码在 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.");
    }
}

【问题讨论】:

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


    【解决方案1】:

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

    编辑:想想为什么不直接使用StringLengthAttribute...

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

    那么您可以将正则表达式用于更具体的规则,例如所需的复杂性。

    【讨论】:

    • 好吧,我还有 2 - 3 个其他我需要添加,我只是在上面添加多个正则表达式吗?例如。 1 表示“密码需要至少 1 个大写字符”,1 表示“密码需要至少有 1 个数字字符”,etci 感觉我需要做一些不可枚举的验证来检查它,我只是不知道该怎么做..
    • 这可能适用于字符串长度,但对于其余部分,如 1 个大写字母、1 个小写字母、1 个数字,每个都需要有特定的消息,如果我将它们全部放在一个正则表达式中,它只会给我一个错误消息,这是在该正则表达式行上指定的。
    【解决方案2】:

    你可能想要这样的东西:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-10
      • 1970-01-01
      • 2015-08-18
      • 1970-01-01
      相关资源
      最近更新 更多