2017-01-23 71 views
1

給定一個URL是這樣的:如何從不需要的部分剝離字符串?

https://images-na.ssl-images-amazon.com/images/M/[email protected]@._V1._CR34,0,295,440_UX32_CR0,0,32,44_AL_.jpg 

我如何得到它像

https://images-na.ssl-images-amazon.com/images/M/[email protected]@._V1._CR34,44_AL_.jpg 

我遇到的問題是與檢索IMDB海報的圖像,使用此:

$('form[name="search-imdb"]').on("submit", function(e) { 
    var form = $(this); 
    e.preventDefault(); 
    $.ajax({ 
    url: "http://imdb.wemakesites.net/api/search", 
    data: form.serialize(), // assuming the form has a hidden input with api_key name, containing your API key 
    crossDomain: true, 
    dataType: "jsonp", 
    success: function(data) { 
     window.console.log(data); 
    } 
    }); 
}); 

我得到一個JSON響應,如:

"thumbnail": "https://images-na.ssl-images-amazon.com/images/M/[email protected]@._V1_UX32_CR0,0,32,44_AL_.jpg" 

我沒有得到任何的海報和the api i am using沒有幫助,但該縮略圖圖像是包括各種格式,其中之一是44_al這是我想爲了留下作爲一個字符串輸出它喜歡什麼:

function imdbLoad() { 
    var form = $("#usp-title").val(); 
    var encodedTerm = encodeURIComponent(form); 
     $.ajax({ 
      url: "http://imdb.wemakesites.net/api/search", 
      data: { 
      q: encodedTerm 
      }, 
      crossDomain: true, 
      dataType: "jsonp", 
      success: function(data) { 
      $("#imdb").empty(); 
      $.each(data.data.results, function(i, items) { 
       $("#imdb").append('<h2>'+i+'</h2>'); 
       $.each(items, function(k, item) { 
       $("#imdb").append("<div class='col-xs-12 col-md-4'><div class='thumbnail'><img class='img-responsive' src='"+ item.thumbnail +"'><div class='caption'><h3>"+ item.title +"</h3><p>"+ item.title +"</p></div></div>"); 
       }); 
      }); 
      } 
     }); 
} 

除非任何人有任何其他的方式搶海報網址

+0

這個答案[ http://stackoverflow.com/questions/24057626/retrieve-imdb-poster-picture-with-php-js](http://stackoverflow.com/questions/24057626/retrieve-imdb-poster-picture-with-php -js)可能對您有所幫助。 –

+0

@vijaymishra謝謝,沒有看到它,看起來很有希望,現在就試試吧 –

+0

@vijaymishra json沒有提供海報,因爲這個答案與$ decode ['Poster']建議; –

回答

0

您可以使用正則表達式來替換不需要串部分

var url = "https://images-na.ssl-images-amazon.com/images/M/[email protected]@._V1._CR34,0,295,440_UX32_CR0,0,32,44_AL_.jpg" 
 
var regex = /,.*(?=,)/g; 
 
console.log(url.replace(regex, ''))

或使用逗號分割(,)並加入第一個和最後一個部分。

var url = "https://images-na.ssl-images-amazon.com/images/M/[email protected]@._V1._CR34,0,295,440_UX32_CR0,0,32,44_AL_.jpg" 
 

 
var parts = url.split(','); 
 
console.log(parts[0] + ',' + parts.pop())

+0

我會接受它,因爲我忘了包括我自己的答案,但是,是的,拆分字符串是走。也不得不做另一個與URL過濾檢查,因爲一些電影不是與圖像,但在網址將有字符串「nopicture」,我可以檢查和跳過結果 –

+0

在這種情況下,不要接受這是一個回答。張貼您的答案並解釋它,以便將來某個人獲得更好的照片。一旦你發佈你的答案,我會刪除我的回答 – Rajesh

+0

好的,粘貼我自己的答案,但保持你的答案,因爲它回答了問題,我把它作爲接受 –

0

這是一個有點長的代碼,因爲我已經包括幾位,例如限制結果的數量,但基本上是我注意到的是,之後的@@整個字符串約爲圖片大小。因此,而不是使用正則表達式(這將是這一特定問題的答案),我可以在維度簡單地添加到URL像一個字符串:

<img class='img-responsive' src='"+ thumbnailMod[0] + "@._V1_UX500_CR0,0,500,550_AL_.jpg'> 

的完整代碼

$('form[name="search-imdb"]').on("submit", function(e) { 
    var form = $(this); 
    e.preventDefault(); 
    $.ajax({ 
    url: "http://imdb.wemakesites.net/api/search", 
    data: { 
     api_key: "...", 
     q: form.find('input[name="q"]').val() 
    }, 
    crossDomain: true, 
    dataType: "jsonp", 
    success: function(data) { 
     $("#imdb").empty(); 
     var thumbnailMod, limiteRes = 1; 
     if (data.data.results.titles !== undefined) { 
     $("#imdb").append('<h2>Titles</h2>'); 
     $.each(data.data.results.titles, function(i, item) { 
      thumbnailMod = item.thumbnail.split('@.'); 
      if (thumbnailMod.length > 1) { 
      if (limiteRes > 3) { 
       return; 
      } 
      limiteRes++; 
      $("#imdb").append("<div class='col-xs-12 col-md-4'><div class='thumbnail'><img class='img-responsive' src='"+ thumbnailMod[0] + "@._V1_UX500_CR0,0,500,550_AL_.jpg'><div class='caption'><h3>"+ item.title +"</h3><p>"+ item.title +"</p></div></div>"); 
      } 
     }); 

     } else { 
     console.log('No titles found for this search.'); 
     } 
    } 
    }); 
});