Cara kerja pola ini
| Bagian | Arti |
|---|---|
[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])? | Label 1–63 karakter yang tidak diawali atau diakhiri tanda hubung |
\. | Titik setelah setiap label |
(?:…)+ | Satu atau lebih label (subdomain) |
[A-Za-z]{2,}$ | Domain tingkat atas (TLD) |
Contoh kode
JavaScript
const re = /^(?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?\.)+[A-Za-z]{2,}$/;
re.test(value); // true or falsePython
import re
bool(re.fullmatch(r'(?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?\.)+[A-Za-z]{2,}', value))PHP
preg_match('/^(?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?\.)+[A-Za-z]{2,}$/', $value) === 1;
Catatan dan batasan
Domain internasional harus diubah dulu ke bentuk punycode (xn--…). Cek record DNS sebuah domain dengan DNS Lookup.
Regex Tester
Ketik pola dan lihat hasil cocok langsung ter-highlight di teks ujimu.
Pertanyaan yang sering diajukan
Apa regex untuk domain name?
/^(?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?\.)+[A-Za-z]{2,}$/ — pola ini mencocokkan seluruh string. Lihat tabel di atas untuk fungsi tiap bagiannya.
Contoh mana yang cocok?
Dari contoh yang diuji, yang cocok adalah: example.com, sub.example.co.uk, my-site.dev. Yang lain tidak cocok.
Bagaimana cara menguji regex ini?
Klik “Buka di Regex Tester” — pola, flag, dan teks contoh akan dimuat otomatis, dan kecocokan akan disorot saat kamu mengedit.