Ajax用+

时间:2016-04-27 00:25:00

标签: javascript jquery ajax

我正在进行ajax调用,我需要用加号(+)替换任何空格。我将在下面显示我的代码,但是目前我正在使用.replace(),但是,它只占用第一个空格并用加号替换它,但剩下所有其余部分。有什么想法吗?

    function getImages() {
  [].slice.call(arguments)
    .map(function(artist) {
      return artist.toString().replace(/\s+/, '+');
    })
    .forEach(function(artist) {
      $.ajax({
        type: 'POST',
        url: 'http://ws.audioscrobbler.com/2.0/',
        data: 'method=artist.getinfo' +
          '&artist=' + artist +
          '&api_key=secret' +
          '&format=json',
        dataType: 'jsonp',
        success: function(data) {
          document.body.innerHTML += '<img src="' + data.artist.image[2]['#text'] + '" /><br>'
        },
        error: function(code, message) {
          alert('there was an error'+ message);
        }
      });
    });
}
var values = []
$(document).ready(function() {
  $('.artist').each(function() {
    var self = $(this)
    values.push(self.html());
  });

  getImages(values);
});

2 个答案:

答案 0 :(得分:3)

你只需要改变这个:

return artist.toString().replace(/\s+/, '+');

...为:

return artist.toString().replace(/\s+/g, '+');

g标志会告诉replace执行&#34;全球&#34;替换而不是仅替换第一场比赛。

答案 1 :(得分:0)

问题在于您发布的.replace正则表达式

 .replace(/\s+/g"+");