using System; using System.Collections.Generic; using System.ComponentModel; using System.Text.RegularExpressions; using ReactiveUI; namespace RegAuth.ViewModels { internal class validViewModel : ViewModelBase { //public bool IsValidPassword(string password) //{ // // Проверка, что пароль не начинается с цифры // if (string.IsNullOrEmpty(password) || char.IsDigit(password[0])) // { // return false; // } // // Регулярное выражение для проверки требований к паролю // string pattern = @"^(?=(?:[^A-Z]*[A-Z]){2})(?=(?:[^a-z]*[a-z]){3})(?=(?:[^0-9]*[0-9]){2})[A-Za-z0-9]{8,}$"; // return Regex.IsMatch(password, pattern); //} public string ValidatePassword(string password) { if (string.IsNullOrEmpty(password)) { return "Пароль не может быть пустым."; } if (char.IsDigit(password[0])) { return "Пароль не должен начинаться с цифры."; } int upperCaseCount = Regex.Matches(password, "[A-Z]").Count; int lowerCaseCount = Regex.Matches(password, "[a-z]").Count; int digitCount = Regex.Matches(password, "[0-9]").Count; if (upperCaseCount < 2) { return "Пароль должен содержать не менее 2 заглавных латинских символов."; } if (lowerCaseCount < 3) { return "Пароль должен содержать не менее 3 строчных латинских символов."; } if (digitCount < 2) { return "Пароль должен содержать не менее 2 цифр."; } if (password.Length < 8) { return "Пароль должен содержать не менее 8 символов."; } return string.Empty; // Если ошибок нет } } }