Изменение суффикса изображения с помощью jQuery

0

Я хочу изменить суффикс изображения для всего изображения, имеющего класс "большой палец". Они могут быть в jpg, png или gif

<img class="thumb" src="http://someting.com/images/abc-150X150.jpg"/>

Хотите удалить -150X150

<img class="thumb" src="http://someting.com/images/abc.jpg"/>

Я узнал этот код, но он удаляет расширения и использует вместо него класс img. Спасибо, что посмотрел мой вопрос.

Теги:

2 ответа

1
Лучший ответ

Один из возможных подходов:

$('img.thumb').each(function() {
  this.src = this.src.replace('-150X150', '');
});
  • 0
    Не хочешь объяснить отрицание, даунвотер?
  • 0
    Я проверил это сработало. И проголосовал, не знаю, кто проголосовал. Я думал о @ Карл-Маркхэм и о вашем ответе. Я думаю, что использование регулярных выражений будет медленнее, потому что он будет проверять перед заменой. Я должен использовать ваш метод, когда суффикс одинаков во всех изображениях. Это?
Показать ещё 2 комментария
2

Это использует регулярное выражение для замены и шаблона, которое соответствует дефису, затем цифра, а затем X и другая цифра

$('.thumb').attr('src', function (index, src) { 
    return src.replace(/-\d+x\d+/, ''); 
});

Стоит отметить, что это просто простое регулярное выражение. Если вы хотите усложниться, вы можете указать минимальное число целых чисел с одной стороны x, чтобы уменьшить совпадение с неправильной вещью, например:

/ -\d{3,}x\d{3,}/

Вышеуказанное будет соответствовать 3 или более цифрам с каждой стороны x

  • 2
    Я бы рекомендовал использовать обратный вызов attr() , а не вызывать его дважды: attr('src', function(index, oldSRC){ return oldSRC.replace(/* regex */,''); }); (или вместо этого использовать prop() , но это личное предпочтение).
  • 0
    Обновленный ответ, спасибо за комментарии
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню