Regex pour nom de domaine

Utilisez /^(?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?\.)+[A-Za-z]{2,}$/ pour vérifier qu’une chaîne complète est un nom de domaine valide. Chaque exemple ci-dessous est testé avec ce modèle, et vous pouvez l’ouvrir dans le Testeur de regex avec les exemples préchargés.

Mis à jour le

/^(?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?\.)+[A-Za-z]{2,}$/
Ouvrir dans le Testeur de regex
EntréeRésultat
example.com✓ Correspondance
sub.example.co.uk✓ Correspondance
my-site.dev✓ Correspondance
-example.com✗ Aucune correspondance
example✗ Aucune correspondance
example-.com✗ Aucune correspondance
https://example.com✗ Aucune correspondance

Fonctionnement du modèle

PartieSignification
[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?Un libellé de 1 à 63 caractères qui ne commence ni ne se termine par un tiret
\.Un point après chaque libellé
(?:…)+Un ou plusieurs libellés (sous-domaines)
[A-Za-z]{2,}$Le domaine de premier niveau

Exemples de code

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;

Notes et limites

Les domaines internationalisés doivent d’abord être convertis sous leur forme punycode (xn--…). Consultez les enregistrements d’un domaine avec la Recherche DNS.

Questions fréquentes

Quelle est la regex pour un nom de domaine ?
/^(?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?\.)+[A-Za-z]{2,}$/ — elle correspond à la chaîne entière. Consultez le tableau ci-dessus pour le rôle de chaque partie.
Quels exemples correspondent ?
Parmi les exemples testés, ceux-ci correspondent : example.com, sub.example.co.uk, my-site.dev. Les autres ne correspondent pas.
Comment tester cette regex ?
Cliquez sur « Ouvrir dans le Testeur de regex » : le modèle, les drapeaux et le texte d’exemple se chargent automatiquement, et les correspondances s’affichent en surbrillance pendant que vous modifiez.