C#用于密码强度的DataAnnotations RegularExpression

C#用于密码强度的DataAnnotations RegularExpression,c#,regex,asp.net-mvc,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 mus

全部,

我正在使用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; }
型号类别:

@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; }
我复制了正则表达式,并在RegexPal.com中对其进行了独立测试,结果非常好

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


我做错什么了吗?DataAttributes RegularExpression属性的行为是否与标准正则表达式不同?

您可以尝试以下方法

   [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; }  

你可以试试下面的方法

   [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; }  
在某种程度上,post可能会引导你。