所有
我正在使用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不同吗?
答案 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; }