Zoeken…


Een wachtwoord met minimaal 1 hoofdletter, 1 kleine letter, 1 cijfer, 1 speciaal teken en een lengte van minimaal 10

Omdat de tekens / cijfers overal in de tekenreeks kunnen voorkomen, hebben we lookaheads nodig. Lookaheads hebben zero width van zero width wat betekent dat ze geen string verbruiken. In eenvoudige woorden wordt de positie van het controleren teruggezet naar de oorspronkelijke positie nadat aan elke voorwaarde van lookahead is voldaan.

Veronderstelling : - Niet-woordtekens als speciaal beschouwen

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

Laten we, voordat we verder gaan met de uitleg, eens kijken hoe de regex ^(?=.*[az]) werkt ( lengte wordt hier niet in beschouwing genomen ) op string 1$d%aA

voer hier de afbeeldingsbeschrijving in

Afbeeldingstegoed : - https://regex101.com/

Dingen om op te merken

  • Controle wordt gestart vanaf het begin van de string vanwege ankertag ^ .
  • De controlepositie wordt teruggezet naar de start nadat aan de voorwaarde van lookahead is voldaan.

Regex verdeling

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

We kunnen ook de niet-hebzuchtige versie van de bovenstaande regex gebruiken

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

Een wachtwoord met minimaal 2 hoofdletters, 1 kleine letters, 2 cijfers en is ten minste 10 lang

Dit kan worden gedaan met een beetje modificatie in de bovenstaande regex

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

of

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

Laten we eens kijken hoe een eenvoudige regex ^(?=(?:.*?[AZ]){2}) werkt op string abcAdefD

voer hier de afbeeldingsbeschrijving in

Afbeeldingstegoed : - https://regex101.com/



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow