2017-01-23 75 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.'); 
     } 
    } 
    }); 
});