用于密码强度的 C# DataAnnotations RegularExpression

Phi*_*enn 0 c# regex asp.net-mvc

全部,

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

注册.cshtml:

@Html.ValidationMessageFor(model => model.Passwd, "", new {@class = "text-danger"})
Run Code Online (Sandbox Code Playgroud)

型号分类:

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

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

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

难道我做错了什么?DataAttributes RegularExpression 属性的行为是否与标准 RegEx 不同?

Tru*_*ong 6

你可以试试下面的

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

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

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