ValidViewModel.cs 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Text.RegularExpressions;
  5. using ReactiveUI;
  6. namespace RegAuth.ViewModels
  7. {
  8. internal class validViewModel : ViewModelBase
  9. {
  10. //public bool IsValidPassword(string password)
  11. //{
  12. // // Ïðîâåðêà, ÷òî ïàðîëü íå íà÷èíàåòñÿ ñ öèôðû
  13. // if (string.IsNullOrEmpty(password) || char.IsDigit(password[0]))
  14. // {
  15. // return false;
  16. // }
  17. // // Ðåãóëÿðíîå âûðàæåíèå äëÿ ïðîâåðêè òðåáîâàíèé ê ïàðîëþ
  18. // string pattern = @"^(?=(?:[^A-Z]*[A-Z]){2})(?=(?:[^a-z]*[a-z]){3})(?=(?:[^0-9]*[0-9]){2})[A-Za-z0-9]{8,}$";
  19. // return Regex.IsMatch(password, pattern);
  20. //}
  21. public string ValidatePassword(string password)
  22. {
  23. if (string.IsNullOrEmpty(password))
  24. {
  25. return "Ïàðîëü íå ìîæåò áûòü ïóñòûì.";
  26. }
  27. if (char.IsDigit(password[0]))
  28. {
  29. return "Ïàðîëü íå äîëæåí íà÷èíàòüñÿ ñ öèôðû.";
  30. }
  31. int upperCaseCount = Regex.Matches(password, "[A-Z]").Count;
  32. int lowerCaseCount = Regex.Matches(password, "[a-z]").Count;
  33. int digitCount = Regex.Matches(password, "[0-9]").Count;
  34. if (upperCaseCount < 2)
  35. {
  36. return "Ïàðîëü äîëæåí ñîäåðæàòü íå ìåíåå 2 çàãëàâíûõ ëàòèíñêèõ ñèìâîëîâ.";
  37. }
  38. if (lowerCaseCount < 3)
  39. {
  40. return "Ïàðîëü äîëæåí ñîäåðæàòü íå ìåíåå 3 ñòðî÷íûõ ëàòèíñêèõ ñèìâîëîâ.";
  41. }
  42. if (digitCount < 2)
  43. {
  44. return "Ïàðîëü äîëæåí ñîäåðæàòü íå ìåíåå 2 öèôð.";
  45. }
  46. if (password.Length < 8)
  47. {
  48. return "Ïàðîëü äîëæåí ñîäåðæàòü íå ìåíåå 8 ñèìâîëîâ.";
  49. }
  50. return string.Empty; // Åñëè îøèáîê íåò
  51. }
  52. }
  53. }