๐ 10 Regex Pattern yang Wajib Dikuasai Developer
Kumpulan regex pattern paling berguna untuk validasi email, password, phone number, dan lainnya. Lengkap dengan penjelasan dan contoh kode.
๐ Pendahuluan
Regular Expression (Regex) adalah salah satu skill paling powerful yang harus dimiliki setiap developer. Dengan regex, Anda dapat melakukan validasi input, search & replace text, dan ekstraksi data dengan sangat efisien.
Namun, regex seringkali terlihat menakutkan dengan syntax-nya yang asing. Artikel ini akan membahas 10 regex pattern yang paling sering digunakan dalam pengembangan web sehari-hari, lengkap dengan penjelasan yang mudah dipahami.
๐ก Tip: Anda bisa test semua pattern di artikel ini menggunakan Regex Tester yang tersedia di Ced DevTools.
๐ 10 Regex Pattern Wajib
1Email Validation
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$Pattern ini digunakan untuk memvalidasi format email address. Regex ini akan memastikan email memiliki format yang benar: username @ domain . extension
โ Valid:
- user@example.com
- john.doe@company.co.id
- test+tag@mail.com
โ Invalid:
- invalid.email
- @example.com
- user@.com
2Password Strength (Strong)
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$Pattern ini memvalidasi password yang kuat dengan kriteria:
- Minimal 8 karakter
- Setidaknya 1 huruf kecil (a-z)
- Setidaknya 1 huruf kapital (A-Z)
- Setidaknya 1 angka (0-9)
- Setidaknya 1 karakter special (@$!%*?&)
โ Valid: Password123!, Secure@2026, MyP@ssw0rd
3Phone Number (Indonesia)
^(\+62|62|0)8[1-9][0-9]{6,9}$Pattern ini untuk validasi nomor handphone Indonesia. Mendukung berbagai format penulisan:
โ Valid:
- 08123456789
- 62812345678
- +628123456789
โ Invalid:
- 08012345678 (080 tidak valid)
- 8123456789 (tanpa 0/62)
- 081234567890123 (terlalu panjang)
4URL Validation
^https?://(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)$Pattern ini memvalidasi URL dengan protocol HTTP atau HTTPS. Mendukung subdomain www dan berbagai path.
โ Valid: https://www.example.com, http://cedevtools.com/tools, https://subdomain.site.co.id/path?query=1
5Date Format (DD/MM/YYYY)
^(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[0-2])/\d{4}$Pattern ini memvalidasi format tanggal DD/MM/YYYY dengan range yang benar:
- Day: 01-31
- Month: 01-12
- Year: 4 digit (contoh: 2026)
โ ๏ธ Note: Pattern ini tidak memvalidasi tanggal yang sebenarnya (misal: 31/02/2026 tetap lolos). Untuk validasi tanggal yang akurat, gunakan library date.
6Username Validation
^[a-zA-Z][a-zA-Z0-9_]{2,19}$Pattern ini untuk validasi username dengan kriteria:
- Harus dimulai dengan huruf (a-z, A-Z)
- Boleh mengandung angka dan underscore
- Panjang: 3-20 karakter
โ Valid:
- john_doe
- User123
- admin_01
โ Invalid:
- 123user (dimulai angka)
- ab (terlalu pendek)
- user-name (dash tidak allowed)
7Credit Card Number (Generic)
^\d{4}[- ]?\d{4}[- ]?\d{4}[- ]?\d{4}$Pattern ini memvalidasi format nomor kartu kredit (16 digit). Mendukung format dengan atau tanpa separator.
โ Valid: 1234567890123456, 1234-5678-9012-3456, 1234 5678 9012 3456
8IP Address (IPv4)
^(\d{1,3}\.){3}\d{1,3}$Pattern ini memvalidasi format IPv4 address. Setiap octet bisa berisi 1-3 digit angka.
โ ๏ธ Note: Pattern ini hanya validasi format, bukan range (0-255). Untuk validasi yang lebih ketat, perlu logic tambahan.
9Hex Color Code
^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$Pattern ini memvalidasi hex color code untuk CSS. Mendukung format 3 digit (short) dan 6 digit (full).
โ Valid:
- #FFF atau #fff
- #123456
- #A1B2C3
โ Invalid:
- #12 (terlalu pendek)
- #12345 (5 digit)
- #GGG (G bukan hex)
10Slug (URL Friendly)
^[a-z0-9]+(?:-[a-z0-9]+)*$Pattern ini untuk validasi slug URL yang SEO-friendly. Kriteria:
- Huruf kecil semua (a-z)
- Boleh mengandung angka (0-9)
- Kata dipisahkan dengan dash (-)
- Tidak boleh dimulai/akhiri dengan dash
โ Valid:
- cara-debug-json-error
- 10-tips-productivity
- react-hooks-guide
โ Invalid:
- -starts-with-dash
- ends-with-dash-
- Has_Uppercase
๐ง Cara Menggunakan Regex di Berbagai Bahasa
๐ JavaScript
// Test email validation
const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$/;
const email = "user@example.com";
if (emailRegex.test(email)) {
console.log("Valid email!");
}
// Extract matches
const text = "Contact: john@example.com, jane@test.com";
const emails = text.match(/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}/g);
console.log(emails); // ["john@example.com", "jane@test.com"]๐ Python
import re
# Test email validation
email_regex = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$'
email = "user@example.com"
if re.match(email_regex, email):
print("Valid email!")
# Find all matches
text = "Contact: john@example.com, jane@test.com"
emails = re.findall(r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}', text)
print(emails) # ['john@example.com', 'jane@test.com']๐ PHP
// Test email validation
$emailRegex = '/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$/';
$email = "user@example.com";
if (preg_match($emailRegex, $email)) {
echo "Valid email!";
}
// Find all matches
$text = "Contact: john@example.com, jane@test.com";
preg_match_all('/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}/', $text, $matches);
print_r($matches[0]); // Array with emails๐ก Tips & Best Practices
- โGunakan regex tester online untuk test pattern sebelum implementasi
- โComment regex yang kompleks agar mudah dipahami tim
- โJangan gunakan regex untuk parsing HTML (gunakan DOM parser)
- โTest dengan berbagai edge cases (input kosong, special characters)
- โPertimbangkan performance untuk regex yang kompleks
- โGunakan non-capturing groups (?:...) jika tidak perlu capture
- โPelajari flag regex: i (case-insensitive), g (global), m (multiline)
โ Kesimpulan
Menguasai regex pattern adalah investasi waktu yang sangat berharga untuk career developer Anda. 10 pattern yang dibahas di artikel ini adalah yang paling sering digunakan dalam pengembangan web sehari-hari.
Praktik terbaik adalah menyimpan pattern-pattern ini sebagai snippet atau reference pribadi. Anda juga bisa langsung test dan gunakan pattern ini di Regex Tester Ced DevTools.
๐ Tools Terkait
CED
Developer di Balik Ced DevTools
Developer yang frustrasi dengan tools online yang lambat dan penuh iklan, jadi buat sendiri. Passionate dengan React, TypeScript, dan membuat hal-hal yang memudahkan developer lain. Ced DevTools adalah proyek pribadi โ tidak ada tim besar di balik ini.
๐ฌKomentar (3)
Budi Santoso
Mar 5, 2026
Artikel yang sangat membantu! Saya sudah lama bingung dengan regex pattern untuk email validation. Sekarang jadi lebih paham.
Siti Nurhaliza
Mar 4, 2026
Mantap! Bisa langsung praktek di Regex Tester Ced DevTools. Thanks min!
Andi Wijaya
Mar 3, 2026
Untuk password strength regex, apakah sudah cukup kuat kalau hanya menggunakan minimal 8 karakter tanpa special character?
๐ Panduan Berkomentar
- โGunakan bahasa yang sopan dan respectful
- โBerbagi pengalaman atau pertanyaan yang relevan dengan artikel
- โDilarang spam, promosi, atau link afiliasi
- โDilarang hate speech, SARA, atau konten negatif lainnya