Szukaj…


Hasło zawierające co najmniej 1 wielką literę, 1 małą literę, 1 cyfrę, 1 znak specjalny i ma długość co najmniej 10

Ponieważ znaki / cyfry mogą znajdować się w dowolnym miejscu ciągu, wymagamy uprzedzenia. Lookaheads mają zero width co oznacza, że nie zużywają żadnego łańcucha. Krótko mówiąc, pozycja sprawdzania resetuje się do pierwotnej pozycji po spełnieniu każdego warunku wyprzedzenia.

Założenie : - uznawanie znaków innych niż słowa za specjalne

^(?=.{10,}$)(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*\W).*$

Zanim przejdziemy do wyjaśnienia, spójrzmy, jak działa wyrażenie regularne ^(?=.*[az]) ( długość nie jest tutaj brana pod uwagę ) w łańcuchu 1$d%aA

wprowadź opis zdjęcia tutaj

Kredyt obrazu : - https://regex101.com/

Rzeczy do zauważenia

  • Sprawdzanie rozpoczyna się od początku łańcucha ze względu na tag zakotwiczenia ^ .
  • Pozycja sprawdzania jest resetowana do startu po spełnieniu warunku wyprzedzenia.

Podział Regex

^ #Starting of string
 (?=.{10,}$) #Check there is at least 10 characters in the string. 
             #As this is lookahead the position of checking will reset to starting again
 (?=.*[a-z]) #Check if there is at least one lowercase in string.
             #As this is lookahead the position of checking will reset to starting again
 (?=.*[A-Z]) #Check if there is at least one uppercase in string.
             #As this is lookahead the position of checking will reset to starting again
 (?=.*[0-9]) #Check if there is at least one digit in string.
             #As this is lookahead the position of checking will reset to starting again
 (?=.*\W) #Check if there is at least one special character in string.
          #As this is lookahead the position of checking will reset to starting again
.*$ #Capture the entire string if all the condition of lookahead is met. This is not required if only validation is needed

Możemy również użyć niechcianej wersji powyższego wyrażenia regularnego

^(?=.{10,}$)(?=.*?[a-z])(?=.*?[A-Z])(?=.*?[0-9])(?=.*?\W).*$

Hasło zawierające co najmniej 2 wielkie litery, 1 małe litery, 2 cyfry i ma długość co najmniej 10

Można to zrobić z niewielką modyfikacją powyższego wyrażenia regularnego

 ^(?=.{10,}$)(?=(?:.*?[A-Z]){2})(?=.*?[a-z])(?=(?:.*?[0-9]){2}).*$

lub

 ^(?=.{10,}$)(?=(?:.*[A-Z]){2})(?=.*[a-z])(?=(?:.*[0-9]){2}).*

Zobaczmy, jak proste wyrażenie regularne ^(?=(?:.*?[AZ]){2}) działa na łańcuchu abcAdefD

wprowadź opis zdjęcia tutaj

Kredyt obrazu : - https://regex101.com/



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow