Regex для имени файла изображения

Используйте /^.+\.(?:jpe?g|png|gif|webp|avif|svg)$/i, чтобы проверить, что вся строка является допустимым именем файла изображения. Каждый пример ниже проверен по этому шаблону, а открыть его в Regex Tester можно с уже загруженными образцами.

Обновлено

/^.+\.(?:jpe?g|png|gif|webp|avif|svg)$/i
Открыть в Regex Tester
ВводРезультат
photo.JPG✓ Совпадение
logo.svg✓ Совпадение
my.image.webp✓ Совпадение
document.pdf✗ Нет совпадения
png✗ Нет совпадения
image.png.bak✗ Нет совпадения
.png✗ Нет совпадения

Как работает шаблон

ЧастьЗначение
^.+Один или несколько символов имени файла
\.Последняя точка
(?:jpe?g|png|gif|webp|avif|svg)Одно из допустимых расширений (jpeg или jpg)
i flagБез учёта регистра, поэтому .JPG тоже подходит

Примеры кода

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;

Примечания и ограничения

Проверка расширения подходит для подсказок пользователю, но в целях безопасности на неё нельзя полагаться. Проверяйте содержимое файла (magic bytes) на сервере.

Часто задаваемые вопросы

Какое регулярное выражение для имени файла изображения?
/^.+\.(?:jpe?g|png|gif|webp|avif|svg)$/i — шаблон проверяет всю строку целиком. Что делает каждая часть, см. в таблице выше.
Какие примеры подходят?
Из проверенных примеров подходят: photo.JPG, logo.svg, my.image.webp. Остальные не подходят.
Как протестировать это регулярное выражение?
Нажмите «Открыть в Regex Tester»: шаблон, флаги и примеры текста загрузятся автоматически, а совпадения будут подсвечиваться по мере редактирования.