1PeGaS
@1PeGaS

Как в этом примере работает принцип метода replace()?

Можете построчно объяснить пожалуйста что тут происходит?

var imgFile = $ (img) .attr('src');
var preloadlmage = new Image();
var imgExt = / ( \ . \w{3,4}$)/;
preloadlmage. src = imgFile.replace(imgExt, '_h$l') ;
  • Вопрос задан
  • 96 просмотров
Решения вопроса 1
Stalker_RED
@Stalker_RED
// у элемента img берется аттрибут src и записывается в переменную imgFile
var imgFile = $(img).attr('src'); 
// создается новое изображение preloadlmage
var preloadlmage = new Image(); 
// в переменную imgExt записывается регулярное выражение
var imgExt = / ( \ . \w{3,4}$)/; 
// значение imgFile модифицируется при помощи регулярного выражения imgExt, и результат записывается в preloadlmage. src
preloadlmage. src = imgFile.replace(imgExt, '_h$l') ;


Документация:
1. api.jquery.com/attr
2. https://developer.mozilla.org/ru/docs/Web/API/HTML...
3. https://learn.javascript.ru/regular-expressions-ja...
4. www.w3schools.com/jsref/jsref_replace.asp

Конкретно эта регулярка ищет в конце строки точку, и за ней 3-4 буквы или цифры. Если находит - дописывает перед ними _h

Пример:
http://example.com/images/my_photo.jpg
заменится на
http://example.com/images/my_photo_h.jpg
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Free_ze
Пишу комментарии в комментарии, а не в ответы
С помощью регулярных выражений вычленяется расширение файла (/(\.\w{3,4}$)/ на языке шумеров означает: "в конце строки, слово из 3-4 символов после точки") и с помощью метода replace к перед ним добавляется префикс _h.

Шумерский алфавит
\. - это просто точка
\w{от, до} - это любое слово (набор букв), длиной от-до символов.
$ - означает конец строки
( ) - круглые скобки образуют группы, на которые можно потом сослаться, как $1...$N, по порядку.

imgFile.replace(imgExt, '_h$l') - Таком образом мы предлагаем заменить группу на нее же, но с префиксом перед ней.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы