Regex para nombre de archivo de imagen

Usa /^.+\.(?:jpe?g|png|gif|webp|avif|svg)$/i para comprobar que una cadena completa es un nombre de archivo de imagen válido. Cada ejemplo de abajo está probado contra el patrón, y puedes abrirlo en el Probador de Regex con las muestras ya cargadas.

Actualizado el

/^.+\.(?:jpe?g|png|gif|webp|avif|svg)$/i
Abrir en el probador de Regex
EntradaResultado
photo.JPG✓ Coincide
logo.svg✓ Coincide
my.image.webp✓ Coincide
document.pdf✗ No coincide
png✗ No coincide
image.png.bak✗ No coincide
.png✗ No coincide

Cómo funciona el patrón

ParteSignificado
^.+Uno o más caracteres del nombre de archivo
\.El último punto
(?:jpe?g|png|gif|webp|avif|svg)Una de las extensiones permitidas (jpeg o jpg)
i flagNo distingue mayúsculas, así que .JPG también coincide

Ejemplos de código

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;

Notas y limitaciones

Comprobar la extensión sirve como pista para el usuario, pero nunca confíes en ella por seguridad: revisa el contenido del archivo (bytes mágicos) en el servidor.

Preguntas frecuentes

¿Cuál es la regex para el nombre de archivo de imagen?
/^.+\.(?:jpe?g|png|gif|webp|avif|svg)$/i — coincide con toda la cadena. Consulta la tabla de arriba para ver qué hace cada parte.
¿Qué ejemplos coinciden?
De los ejemplos probados, coinciden estos: photo.JPG, logo.svg, my.image.webp. Los demás no.
¿Cómo pruebo esta regex?
Haz clic en “Abrir en el probador de Regex”: el patrón, los flags y el texto de muestra se cargan automáticamente, y las coincidencias se resaltan mientras editas.