Regex pour nom de fichier image

Utilisez /^.+\.(?:jpe?g|png|gif|webp|avif|svg)$/i pour vérifier qu’une chaîne entière correspond à un nom de fichier image valide. Chaque exemple ci-dessous est testé avec ce modèle, et vous pouvez l’ouvrir dans le Testeur de regex avec les exemples déjà chargés.

Mis à jour le

/^.+\.(?:jpe?g|png|gif|webp|avif|svg)$/i
Ouvrir dans le Testeur de regex
EntréeRésultat
photo.JPG✓ Correspondance
logo.svg✓ Correspondance
my.image.webp✓ Correspondance
document.pdf✗ Aucune correspondance
png✗ Aucune correspondance
image.png.bak✗ Aucune correspondance
.png✗ Aucune correspondance

Fonctionnement du modèle

ÉlémentSignification
^.+Un ou plusieurs caractères du nom de fichier
\.Le dernier point
(?:jpe?g|png|gif|webp|avif|svg)L’une des extensions autorisées (jpeg ou jpg)
i flagInsensible à la casse, donc .JPG correspond aussi

Exemples de code

JavaScript

const re = /^.+\.(?:jpe?g|png|gif|webp|avif|svg)$/i;
re.test(value); // true or false

Python

import re

bool(re.fullmatch(r'.+\.(?:jpe?g|png|gif|webp|avif|svg)', value, re.I))

PHP

preg_match('/^.+\.(?:jpe?g|png|gif|webp|avif|svg)$/i', $value) === 1;

Remarques et limites

Vérifier l’extension suffit pour donner des indications à l’utilisateur, mais ne lui faites jamais confiance pour la sécurité : contrôlez plutôt le contenu du fichier (octets magiques) côté serveur.

Questions fréquentes

Quelle est la regex pour un nom de fichier image ?
/^.+\.(?:jpe?g|png|gif|webp|avif|svg)$/i — 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 : photo.JPG, logo.svg, my.image.webp. 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.