Asp.net mvc 4 MVC4中的多个RegularExpression属性

Asp.net mvc 4 MVC4中的多个RegularExpression属性,asp.net-mvc-4,data-annotations,Asp.net Mvc 4,Data Annotations,在我的MVC4应用程序中,我需要在帐户注册屏幕上进行验证;至少包含1个数字、1个大写和1个小写字符的密码。我想要模型类属性,比如 [Display(Name = "Register_Password", ResourceType = typeof(VirtuOxAdmin))] [Required(ErrorMessageResourceType = typeof(VirtuOxAdmin), ErrorMessageResourceName = "Register_PasswordRe

在我的MVC4应用程序中,我需要在帐户注册屏幕上进行验证;至少包含1个数字、1个大写和1个小写字符的密码。我想要模型类属性,比如

[Display(Name = "Register_Password", ResourceType = typeof(VirtuOxAdmin))]
    [Required(ErrorMessageResourceType = typeof(VirtuOxAdmin), ErrorMessageResourceName = "Register_PasswordRequired")]
    [MinLength(5, ErrorMessageResourceType = typeof(VirtuOxAdmin), ErrorMessageResourceName = "Admin_CreateCustomer_PasswordMinLength")]
    [MaxLength(32, ErrorMessageResourceType = typeof(VirtuOxAdmin), ErrorMessageResourceName = "Admin_CreateCustomer_PasswordMaxLength")]
    [RegularExpression(@"\d", ErrorMessageResourceType = typeof(VirtuOxAdmin), ErrorMessageResourceName = "Admin_CreateCustomer_AtleastOneDigit")]
    [RegularExpression("[A-Z]+", ErrorMessageResourceType = typeof(VirtuOxAdmin), ErrorMessageResourceName = "Admin_CreateCustomer_AtleastOneUChar")]
    [RegularExpression("[a-z]+", ErrorMessageResourceType = typeof(VirtuOxAdmin), ErrorMessageResourceName = "Admin_CreateCustomer_AtleastOneLChar")]
    public string Password { set; get; }
但是我得到了错误error重复的'RegularExpression'属性


如何编写密码验证代码?

必须将所有元素合并到一个正则表达式中。为此,可以使用零宽度前瞻断言。像这样的方法应该会奏效:

(?=.*[a-z])(?=.*[A-Z])(?=.*\d)

谢谢你的回复。但是通过这种方式,我无法显示验证失败的错误消息。正确的话,您必须使用更通用的消息,如“密码必须包括小写字母、大写字母和数字”。如果这还不够好,您需要创建自定义验证程序并为其编写代码。然后可以分别测试每个正则表达式并返回相应的消息。根据我的经验,这通常是没有必要的。