2016-04-27 18 views
0

私はajaxコールを発信していますが、プラス記号(+)で置き換えるにはスペースが必要です。私は下のコードを表示しますが、現在私は.replace()を使用していますが、最初のスペースを取り、プラスで置き換えるだけですが、残りはすべて残しておきます。何か案は?Ajaxでスペースを置き換えます+

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

...に:あなたはちょうどこれを変更する必要が

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); 
}); 

答えて

3

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

gフラグが代わるだけではなく交換する "グローバル" を行うためにreplaceを教えてくれます最初の試合。

+0

おかげで、試してみてください。私は前にそれを理解していませんでしたが、すべての文字列には最後にスペース(現在は+)があります。私は、この文の最後に.slice(0、-1)を追加することでこれを修正しようとしましたが、運はありません。何か案は? –

+0

交換する前にトリミングすることができます。古いブラウザはトリムメソッドを持っていないので、先行/後続スペースを置き換えると便利です: '.replace(/^\ s + | \ s + $/g、 '')' – Jacob

0

問題は、あなたが

を掲載.replace正規表現であるが、それをやった

.replace(/\s+/g"+"); 
関連する問題