Šta je novo?

[JS] RegEx za Password - Kako?

Pontiac

Poštovan
Učlanjen(a)
07.08.2014
Poruke
218
Poena
70
Moja oprema  
Pristup internetu
  1. Optički internet
Pokusavam da napravim HTML formu koju proveravam pomocu JS.
Sada kod sifre mi je potrebno da sifra ima najmanje dva broja, dva mala, dva velika slova i da je makar 8 karaktera dugacka...
Pokusavao sam da nadjem na netu i nisam uspeo, a sam nikako nisam mogao da uradim.
Izgubim se u onom RegEx izrazu :p
Ukoliko bi neko mogao da mi pomogne bio bih mu zahvalan :)
 
Kod:
^(?=.*[A-Z]).{2,}(?=.*\d).{2,}(?=.*(_|[^\w])).{8,}$

Mislim da je to to ako nisam negde pogresio. Testiraj ovde: https://regex101.com/
 
@kUdtiHaEX

Jesi pogresio ali boze moj svi mi gresimo.

Tvoj regex radi sledece:

  1. Krece od pocetka stringa
  2. Prvi lookahead (?=.*[A-Z]) pokusava da nadje veliko slovo negde u stringu
  3. Drugi lookahead (?=.*\d) pokusava da nadje brojku, ali tako da ispred nje vec postoje dva ili vise karaktera
  4. Treci lookahead (?=.*(_|[^\w])) pokusava da nadje bilo koji karakter koji nije slovo ili broj, ali tako da ispred njega vec postoje cetiri ili vise karaktera (2+2 iz quantifiera)
  5. I konacno trazis osam ili vise karaktera, ali tako da ispred njih vec postoje cetiri ili vise karaktera

Quantifier-e koje koristis posle lookahead-a se ne odnose na njih.

U sustini tvoj regex trazi string od minimum 12 karaktera sa jednim velikim slovom, jednom brojkom i jednim karakterom koji nije ni slovo ni broj, vodeci racuna da ispred brojke moraju biti najmanje 2 karaktera a ispred ne alfanumerickog karaktera najmanje 4 karaktera.

@Pontiac

Regex koji tebi treba je ovaj:

Kod:
^(?=(?:\D*\d){2})(?=(?:[^A-Z]*[A-Z]){2})(?=(?:[^a-z]*[a-z]){2}).{8,}$

Znam da si rekao da ces regex koristiti u okviru Js-a, ali vodi racuna ukoliko ih koristis za server side validaciju, jer mogu biti veliki "security risk" ako neznas da ih koristis kako treba. Zato moja preporuka ili sedi i nauci ih kako treba ili radi direktno copy paste sa nekog poznatijeg site-a.

Btw ovaj site regex101 je odlican !

Iskreno se nadam da ce ovo nekom pomoci.
 
Hm, sad videh sta sam uradio, u pravu si moj regex je totalno pogresan :\
 
Nazad
Vrh Dno