我正在进行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);
});
答案 0 :(得分:3)
你只需要改变这个:
return artist.toString().replace(/\s+/, '+');
...为:
return artist.toString().replace(/\s+/g, '+');
g
标志会告诉replace
执行&#34;全球&#34;替换而不是仅替换第一场比赛。
答案 1 :(得分:0)
问题在于您发布的.replace正则表达式
试
.replace(/\s+/g"+");