You need to look for some replaceAll option
str = str.replace(/ /g, "+");
this is a regular expression way of doing a replaceAll.
function ReplaceAll(Source, stringToFind, stringToReplace) {
var temp = Source;
var index = temp.indexOf(stringToFind);
while (index != -1) {
temp = temp.replace(stringToFind, stringToReplace);
index = temp.indexOf(stringToFind);
}
return temp;
}
String.prototype.ReplaceAll = function (stringToFind, stringToReplace) {
var temp = this;
var index = temp.indexOf(stringToFind);
while (index != -1) {
temp = temp.replace(stringToFind, stringToReplace);
index = temp.indexOf(stringToFind);
}
return temp;
};
encodeURIComponent()
. Don't try to hack it yourself with string replace; it's a lot trickier than you think. This will encode spaces to%20
rather than+
though.%20
is just as valid (in fact more valid, as it works in path components, whereas+
only means a space in query components), but if you want it to look marginally prettier you can always do areplace(/%20/g, '+')
afterwards of course. You might be tempted to useescape()
because it does use+
, but it also gets all non-ASCII characters wrong—avoid.