Regex para nome de arquivo de imagem

Use /^.+\.(?:jpe?g|png|gif|webp|avif|svg)$/i para verificar se uma string inteira é um nome de arquivo de imagem válido. Todos os exemplos abaixo foram testados com o padrão, e você pode abri-los no Regex Tester com as amostras já carregadas.

Atualizado em

/^.+\.(?:jpe?g|png|gif|webp|avif|svg)$/i
Abrir no Regex Tester
EntradaResultado
photo.JPG✓ Correspondência
logo.svg✓ Correspondência
my.image.webp✓ Correspondência
document.pdf✗ Sem correspondência
png✗ Sem correspondência
image.png.bak✗ Sem correspondência
.png✗ Sem correspondência

Como o padrão funciona

ParteSignificado
^.+Um ou mais caracteres do nome do arquivo
\.O último ponto
(?:jpe?g|png|gif|webp|avif|svg)Uma das extensões permitidas (jpeg ou jpg)
i flagNão diferencia maiúsculas de minúsculas, então .JPG também corresponde

Exemplos 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;

Observações e limitações

Verificar a extensão serve para dicas ao usuário, mas nunca confie nela para segurança — verifique o conteúdo do arquivo (bytes mágicos) no servidor.

Perguntas frequentes

Qual é a regex para nome de arquivo de imagem?
/^.+\.(?:jpe?g|png|gif|webp|avif|svg)$/i — ela corresponde à string inteira. Veja a tabela acima para o que cada parte faz.
Quais exemplos correspondem?
Dos exemplos testados, estes correspondem: photo.JPG, logo.svg, my.image.webp. Os outros não.
Como testo essa regex?
Clique em “Abrir no Regex Tester” — o padrão, as flags e o texto de exemplo carregam automaticamente, e as correspondências são destacadas enquanto você edita.