Ricerca…


Una password contenente almeno 1 lettere maiuscole, 1 lettere minuscole, 1 cifra, 1 carattere speciale e una lunghezza di almeno 10 caratteri

Poiché i caratteri / le cifre possono essere ovunque all'interno della stringa, abbiamo bisogno di lookheads. Lookaheads sono di zero width senso che non consumano alcuna stringa. In parole semplici, la posizione di controllo si ripristina nella posizione originale dopo che ciascuna condizione di lookahead è soddisfatta.

Assunzione : - Considerando i caratteri non parole come speciali

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

Prima di procedere alla spiegazione, diamo un'occhiata a come funziona la regex ^(?=.*[az]) (la lunghezza non è considerata qui ) sulla stringa 1$d%aA

inserisci la descrizione dell'immagine qui

Credito immagine : https://regex101.com/

Cose da notare

  • Il controllo viene avviato dall'inizio della stringa a causa del tag di ancoraggio ^ .
  • La posizione di controllo viene reimpostata all'avvio dopo che è stata soddisfatta la condizione di lookahead.

Regex Breakdown

^ #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

Possiamo anche usare la versione non golosa della regex di cui sopra

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

Una password contenente almeno 2 lettere maiuscole, 1 lettere minuscole, 2 cifre e una lunghezza di almeno 10

Questo può essere fatto con un po 'di modifica nella regex di cui sopra

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

o

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

Vediamo come una semplice regex ^(?=(?:.*?[AZ]){2}) funziona su string abcAdefD

inserisci la descrizione dell'immagine qui

Credito immagine : https://regex101.com/



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow