Erős jelszó-regex — Előretekintési szabályok magyarázata
A JavaScript reguláris kifejezéseinek hibakeresése élőben: kiemelt egyezések, rögzítési csoportok, jelzők és csere előnézet.
Eredmény
Ez az oldal egy teljesen előretekintő jelszó-házirend-mintával nyílik meg: ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^A-Za-z0-9\s]).{8,}$. Mindegyik (?=…) egy nulla szélességű ellenőrzés, amely az egész sort átvizsgálja anélkül, hogy felhasználná: az egyik kisbetűt, a másik nagybetűt, a másik egy számjegyet, egy speciális karaktert követel – és csak ezután kényszeríti ki a .{8,} a minimális hosszt.
Itt a jelzők számítanak: m a ^ és $ karaktereket minden sorhoz rögzíti a teljes szöveg helyett, és g minden megfelelő sort megtalál. Ez ellenőrzőlistává változtatja a tesztelőt – a minta öt jelölt jelszót tartalmaz, és csak azok a sorok világítanak, amelyek mind a négy előretekintést kielégítik. Egy pillantással megtudhatja, hogy a jelszó123 miért nem működik (nincs nagybetű, nincs speciális karakter), miközben a Tr0ub4dor&3 átmegy.
Az előrejelzések az „X-et valahol tartalmaznia kell” feltételek egyetlen kifejezésben történő kifejezésének szokásos módja, és ez az előre beállított beállítás biztonságos játszóteret biztosít ezek megtanulásához. Szigorítsa a házirendet 12+ karakterre, adjon hozzá egy (?!.*(.)\1\1) ellenőrzést a háromszoros ismétlődés ellen, vagy illessze be a valódi jelölt jelszavak listáját – minden változtatás azonnal újraértékelésre kerül, és a beírt szöveg nem hagyja el a böngészőt.