Регулярний вираз для надійного пароля
Налагоджуйте регулярні вирази JavaScript наживо: підсвітка збігів, групи захоплення, прапорці та прев'ю заміни.
Результат
Сторінка відкривається з патерном парольної політики, побудованим повністю на lookahead-перевірках: ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^A-Za-z0-9\s]).{8,}$. Кожен (?=…) — перевірка нульової ширини, що сканує весь рядок, нічого не споживаючи: одна вимагає малу літеру, друга — велику, третя — цифру, четверта — спецсимвол, і лише потім .{8,} контролює мінімальну довжину.
Прапорці тут вирішують: m прив'язує ^ і $ до кожного рядка, а не до всього тексту, а g знаходить усі рядки, що підходять. Так тестер перетворюється на чекліст: у прикладі п'ять паролів-кандидатів, і підсвічуються лише рядки, що задовольняють усі чотири lookahead. Одразу видно, чому password123 не проходить (немає великої літери і спецсимвола), а Tr0ub4dor&3 — проходить.
Lookahead — стандартний спосіб виразити умови «має містити X десь у рядку» одним виразом, і цей пресет — безпечний майданчик, щоб їх опанувати. Посильте політику до 12+ символів, додайте перевірку (?!.*(.)\1\1) проти потрійних повторів або вставте список реальних паролів-кандидатів — кожна зміна переоцінюється миттєво, і нічого з введеного не залишає ваш браузер.