C#DataAnnotations RegularExpression for Password Strength

时间:2017-05-12 03:35:56

标签: c# regex asp.net-mvc

所有

我正在使用ASP.NET MVC并尝试使用正则表达式来强制执行密码要求。

Register.cshtml:

@Html.ValidationMessageFor(model => model.Passwd, "", new {@class = "text-danger"})

模特课程:

    [RegularExpression("/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9]).{8}/g", 
         ErrorMessage = "Password must meet requirements")]
    public string Passwd { get; set; }

我复制了RegEx并在RegexPal.com中单独测试它,它运行得很好。

但是,在我的ASP.NET MVC应用程序中使用它时,每次都会收到错误消息(即使使用我知道符合要求的密码。

我做错了吗? DataAttributes RegularExpression属性的行为与标准RegEx不同吗?

1 个答案:

答案 0 :(得分:3)

您可以尝试以下

   [RegularExpression(@"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{8}$", 
         ErrorMessage = "Password must meet requirements")]
    public string Passwd { get; set; }

如果您还想要至少一个特殊字符,请尝试以下方法:

   [RegularExpression(@"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^\da-zA-Z]).{8}$", 
         ErrorMessage = "Password must meet requirements")]
    public string Passwd { get; set; }