Вытащить все ссылки на картинки из текстового поля

Рейтинг: 0Ответов: 2Опубликовано: 23.10.2014

Подскажите, пожалуйста, каким образом можно вытащить все ссылки на картинки из строки средствами JS без повтора?

Вот пытался разобраться с exec и match, но получается с трудом.
Разбирал этим:

var pattern = /^https?:\/\/(?:[a-z\-]+\.)+[a-z]{2,6}(?:\/[^\/#?]+)+\.(?:jpe?g|gif|png)$/i;

strEx = pattern.exec(curStr);

Потом с помощью push заношу в массив, но проблема в том, что в strEx всегда только первая картинка, а для строк вида:

http://hashcode.ru/upfiles/logo.png
http://i.imgur.com/ZOfyh6U.jpg
http://i.imgur.com/IxdBnsd.png

Оно и вовсе отказывается работать. Пытался добавлять g и m модификаторы в регулярку, но тогда вообще ничего не работает.

Ответы

▲ 1

Почитай, примерно подобное: http://javascript.ru/forum/misc/43536-izvlechenie-s-sajjta-ssylok-na-izobrazheniya.html
Ссылка на хороший сайт по регулярным выражениям: http://www.regular-expressions.info

▲ 1

Как ты получишь ссылки в массиве, если исходная строка неправильная?
regex даст только последнюю ссылку - это его ...особенность.
Может, лучше так:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
<script>
$(function(){
  $('#find-file').click(function(){
    getimage(0, encodeURIComponent($('#focusedInput').val()));
  });
  function getimage(id, image_key) {
     $('#imgbook')['attr']('src', './progress.gif');
     $['getJSON']('http://ajax.googleapis.com/ajax/services/search/images?v=1.0&q=' + image_key + '&rsz=2&imgsz=medium&callback=?', function (json) {
         $('#imgbook')['attr']('src', (json['responseData']['results'][id]['url']));
         $('#imgbook')['error'](function () {
             if(json['responseData']['results'][++id]) getimage(id, image_key); //проверка, чтоб небыло бесконечного цикла
         });
     });
  };
});

</script>
<input id="focusedInput" value="сиськи" >
<button type="submit" id="find-file">Поиск</button>

<img id="imgbook" width="200" src="http://javascript.ru/forum/images/smilies/smile.gif">