Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: 1 duża, 1 mała i 2 znaki specialne w haśle -> rejestracja
Forum PHP.pl > Forum > PHP
h4c0k1
Witam tak jak w temacie, potrzebuje funkcję / już ułożoną strukturę tego.
Wiem że można zrobić to w preg_match ale nie obczajam tej funkcji proszę o pomoc!
phpion
Pokaż w takim razie jak próbowałeś. Na gotowca nie licz, a już na pewno nie w tym dziale.
by_ikar
Wiesz, jeżeli nie potrafisz tego zrobić w jednym wyrażeniu (co jest oczywiste, bo jest to trochę trudne), to możesz spokojnie to przetestować w kilku wyrażeniach, np tak:

  1. <?php
  2.  
  3. function checkPassword($password)
  4. {
  5. //długość hasła
  6. if(strlen($password) < 8)
  7. {
  8. return false;
  9. }
  10.  
  11. //małe litery
  12. if(!preg_match('/[a-z]/', $password))
  13. {
  14. return false;
  15. }
  16.  
  17. //duże litery
  18. if(!preg_match('/[A-Z]/', $password))
  19. {
  20. return false;
  21. }
  22.  
  23. //cyfry
  24. if(!preg_match('/[0-9]/', $password))
  25. {
  26. return false;
  27. }
  28.  
  29. //znaki specialne
  30. if(preg_match_all('/[!@#$%^&*()\-_=+{};:,<.>]/', $password, $matches) < 2)
  31. {
  32. return false;
  33. }
  34.  
  35. return true;
  36. }
  37.  
  38. var_dump(checkPassword('pA$w0rd_'));


lub stworzyć/znaleźć wyrażenie którego nie będziesz rozumiał:

Kod
(?:(?=.*[a-z])(?:(?=.*[A-Z])(?=.*[\d\W])|(?=.*\W)(?=.*\d))|(?=.*\W)(?=.*[A-Z])(?=.*\d)).{8,}


Daje gotowca tylko dlatego że wyrażenia to nie jest coś łatwego i jeżeli się tego nie rozumie, to wszelkie próby pomocy w zrozumieniu tego raczej niewiele tutaj zmienią.. Zwłaszcza że można łatwo gotowce do twojego problemu znaleźć w różnych językach.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.