@kalaysolay

Как сделать валидацию пароля с помощью регулярных выражений в проекте ASP.NET MVC?

Учусь asp.net mvc
Есть модель:
public class LoginViewModel
    {
        [Display(Name = "Логин")]
        [Required(ErrorMessageResourceName = "RequiredField", ErrorMessageResourceType = typeof(Resources.Resources))]
        public string Login { get; set; }

        [Display(Name = "Пароль")]
        [DataType(DataType.Password)]
        [Required(ErrorMessageResourceName = "RequiredField", ErrorMessageResourceType = typeof(Resources.Resources))]
        [RegularExpression("/(?=.*[0-9])(?=.*[!@#$%^&*])(?=.*[a-z])(?=.*[A-Z])[0-9a-zA-Z!@#$%^&*]", ErrorMessageResourceName = "PasswordIsNotValid", ErrorMessageResourceType = typeof(Resources.Resources))]
        public string Password { get; set; }
    }


Вывожу на странице так:
<div class="common-row">
    <label class="common-label">
       @Resources.NewPassword
    </label>
        @Html.TextBoxFor(model => model.Password, new { @class = "common-input", type = "password" })
    <div class="error__input">
        @Html.ValidationMessageFor(model => model.Password, "", new { @class = "text-danger" })
   </div>
</div>

Правила для валидации такие:
1. Пароль должен содержать как минимум одну заглавную букву
2. Пароль должен содержать как минимум одну строчную букву
3. Пароль должен содержать как минимум один спецсимвол
4. Пароль должен содержать как минимум одину цифру
Выражение (?=.*[0-9])(?=.*[!@#$%^&*])(?=.*[a-z])(?=.*[A-Z])[0-9a-zA-Z!@#$%^&*] проверял на regex101 и вроде все работает.

Но, когда на сайте пытаюсь ввести пароль, то ругается мол пароль не соответствует правилам. Не понимаю, что я делаю не так
  • Вопрос задан
  • 348 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы