Fonctionnement du modèle
| Partie | Signification |
|---|---|
[a-z0-9]+ | Une ou plusieurs lettres minuscules ou chiffres |
(?:-[a-z0-9]+)* | Un nombre quelconque de mots supplémentaires, chacun précédé d'un seul tiret |
^…$ | La chaîne entière, donc sans tiret en début ou en fin, ni tirets doubles |
Exemples de code
JavaScript
const re = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
re.test(value); // true or falsePython
import re
bool(re.fullmatch(r'[a-z0-9]+(?:-[a-z0-9]+)*', value))PHP
preg_match('/^[a-z0-9]+(?:-[a-z0-9]+)*$/', $value) === 1;
Remarques et limites
Transformez vos titres en slugs avec le générateur de slug.
Testeur d’expressions régulières
Saisissez un modèle et observez les correspondances s'afficher en temps réel dans votre texte de test.
Questions fréquentes
Quelle est la regex pour un slug d'URL ?
/^[a-z0-9]+(?:-[a-z0-9]+)*$/ — elle correspond à la chaîne entière. Consultez le tableau ci-dessus pour voir le rôle de chaque partie.
Quels exemples correspondent ?
Parmi les exemples testés, ceux-ci correspondent : regex-tester, hello-world-2026, a. 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.