javascript encodeURIComponent and converting spaces to + symbols

Ian picture Ian · Jun 1, 2012 · Viewed 23.4k times · Source

I would like to encode my URL, but I want to convert spaces to plus symbols.

This is what I attempted to do...

var search = "Testing this here &";

encodeURIComponent(search.replace(/ /gi,"+"));

The output from that is Testing%2Bthis%2Bhere%2B%26 but what I would like it to be is Testing+this+here+%26 I tried replacing the space with %20 to convert it into a plus symbol, but that didn't seem to work. Can anyone tell me what it is I'm doing wrong here?

Answer

MaxArt picture MaxArt · Jun 1, 2012
encodeURIComponent(search).replace(/%20/g, "+");

What you're doing wrong here is that first you convert spaces to pluses, but then encodeURIComponent converts pluses to "%2B".