Cara kerja pola
| Bagian | Arti |
|---|---|
(?=.*[a-z]) | Lookahead: setidaknya ada satu huruf kecil di suatu tempat |
(?=.*[A-Z]) | Setidaknya satu huruf besar |
(?=.*\d) | Setidaknya satu angka |
(?=.*[^A-Za-z0-9]) | Setidaknya satu simbol |
.{8,} | Delapan karakter atau lebih secara total |
Contoh kode
JavaScript
const re = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^A-Za-z0-9]).{8,}$/;
re.test(value); // true or falsePython
import re
bool(re.fullmatch(r'(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^A-Za-z0-9]).{8,}', value))PHP
preg_match('/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^A-Za-z0-9]).{8,}$/', $value) === 1;
Catatan dan batasan
Setiap lookahead memeriksa satu aturan tanpa mengonsumsi karakter, jadi aturan-aturan tersebut bisa muncul dalam urutan apa pun. Panduan NIST terbaru lebih mengutamakan panjang (15+ karakter) dan pengecekan terhadap password yang pernah bocor dibandingkan aturan komposisi — pertimbangkan aturan panjang saja ditambah indikator kekuatan. Buat satu dengan Password Generator.
Regex Tester
Ketik pola dan lihat hasil cocok langsung ter-highlight di teks ujimu.