Пара вещей.
Match принимает объект RegExp
, а не строку. Это может работать в некоторых браузерах, но определенно не является стандартным.
"gif".match('/gif|png|jpg/'); // null
без струн
"gif".match(/gif|png|jpg/); // ["gif"]
Кроме того, вы можете проверить их в конце имени файла, а не где-нибудь в строке.
"isthisagif.nope".match(/(gif|png|jpg|jpeg)/); // ["gif", "gif"]
Поиск только в конце строки с суффиксом $ 1025 *
"isthisagif.nope".match(/(gif|png|jpg|jpeg)$/); // null
Нет необходимости вводить href в нижнем регистре, просто выполните поиск без учета регистра /i
.
Ищите точку перед расширением изображения в качестве дополнительной проверки.
И некоторые тесты. Я не знаю, как вы получили какие-либо результаты при использовании строкового аргумента для .match
. В каком браузере вы находитесь?