0

Regex silnego hasła — objaśnienie zasad Lookahead

Debuguj na żywo wyrażenia regularne JavaScript: wyróżnione dopasowania, grupy przechwytywania, flagi i podgląd zamiany.

Obsługuje $1, $2 i nazwane odniesienia, takie jak $<name>; $& wstawia całe dopasowanie. Pozostaw puste, aby ukryć podgląd.

Przetwarzanie... 0%

Wynik

Ta strona otwiera się ze wzorcem zasad haseł zbudowanym w całości na podstawie lookaheadów: ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^A-Za-z0-9\s]).{8,}$. Każdy (?=…) to kontrola zerowej szerokości, która skanuje całą linię bez jej zużywania: jedna wymaga małej litery, jedna wielkiej litery, jedna cyfry, trzecia znaku specjalnego — i dopiero wtedy .{8,} wymusza minimalną długość.

Flagi mają tutaj znaczenie: m powoduje, że ^ i $ zakotwiczają każdą linię zamiast całego tekstu, a g znajduje każdą kwalifikującą się linię. To zmienia testera w listę kontrolną — próbka zawiera pięć potencjalnych haseł i świecą się tylko linie spełniające wszystkie cztery przewidywania. Zobacz na pierwszy rzut oka, dlaczego hasło123 kończy się niepowodzeniem (bez wielkich liter i znaków specjalnych), podczas gdy Tr0ub4dor&3 przechodzi.

Lookaheady to standardowy sposób wyrażania warunków „musi zawierać gdzieś X” w jednym wyrażeniu, a to ustawienie wstępne jest bezpiecznym miejscem do ich nauki. Zaostrz zasady do ponad 12 znaków, dodaj (?!.*(.)\1\1) sprawdzanie potrójnych powtórzeń lub wklej listę prawdziwych kandydatów na hasła — każda zmiana jest natychmiast ponownie oceniana i nic, co wpiszesz, nie opuści przeglądarki.