Regex untuk domain name

Gunakan /^(?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?\.)+[A-Za-z]{2,}$/ untuk memeriksa apakah seluruh string adalah domain name yang valid. Setiap contoh di bawah sudah diuji terhadap pola ini, dan kamu bisa membukanya di Regex Tester dengan contoh yang sudah dimuat.

Diperbarui

/^(?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?\.)+[A-Za-z]{2,}$/
Buka di Regex Tester
InputHasil
example.com✓ Cocok
sub.example.co.uk✓ Cocok
my-site.dev✓ Cocok
-example.com✗ Tidak cocok
example✗ Tidak cocok
example-.com✗ Tidak cocok
https://example.com✗ Tidak cocok

Cara kerja pola ini

BagianArti
[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 false

Python

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.

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.