javascript encodeURIComponent and converting space

2020-02-10 03:49发布

问题:

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?

回答1:

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".



回答2:

You're using the wrong function. Use escape instead of encodeURIComponent.

var search = "Testing this here &";
console.log(escape(search.replace(/ /gi,"+")));​