Reputation: 315
In my MVC 4 application I need to validate on account registration screen; password for containing at least 1 digit, 1 uppercase & 1 lowercase charater. I want to have model class property something like
[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; }
But I am getting error Error Duplicate 'RegularExpression' attribute
How can I code for password validation?
Upvotes: 2
Views: 4675
Reputation: 3681
You have to combine all the elements into a single regex. To do that, you can use zero-width look ahead assertions. Something like this should work:
(?=.*[a-z])(?=.*[A-Z])(?=.*\d)
Upvotes: 4