删除URL查询字符串中的加号(+)

我正在尝试获取以下URL中的字符串以显示在我的网页上。

http://example.com?ks4day=Friday+September+13th

编辑:当我的CRM程序合并URL时,URL中的日期将因人而异。

我可以使用下面的代码在我的网页上显示它,问题是加号(+)也是通过。

例如。 周五+月+ 13日

我需要它做的是用空格替换加号(+),所以它看起来像这样:

例如。 9月13日星期五

我是新手,所以我在解决它时遇到了一些麻烦。

任何帮助,将不胜感激。

这是我在.js文件中使用的代码

function qs(search_for) { var query = window.location.search.substring(1); var parms = query.split('&'); for (var i=0; i 0 && search_for == parms[i].substring(0,pos)) { return parms[i].substring(pos+1);; } } return ""; } 

这是我在我的网页上使用的代码来显示它

  document.write(qs("ks4day")); 

如果这就是你正在做的事情,加号将不是唯一会给你带来困难的。 撇号(’),等于(=),加上(+),基本上不在允许的URL字符中的任何内容(参见Percent-encoding @ Wikipedia)都将被转义。

您正在寻找的是decodeURIComponent函数。

尽管Bibhu的答案适用于这种情况,但如果您在URI字符串中编码了字符,则需要添加decodeURIComponent 。 如果您的URI字符串中有合法的+ (如%2B ),您还需要确保在解码之前执行替换。

我相信这是最好的一般方法:

 var x = qs("ks4day"); // 'Friday+September+13th' x = x.replace(/\+/g, '%20'); // 'Friday%20September%2013th' x = decodeURIComponent(x); // 'Friday September 13th' 

以下是它可能有用的示例:

 var x = '1+%2B+1+%3D+2'; x = x.replace(/\+/g, '%20'); // '1%20%2B%201%20%3D%202' x = decodeURIComponent(x); // '1 + 1 = 2' 

您可以使用replace()来实现此目的

 var dateString = 'Friday+September+13th'; var s = dateString .replace(/\+/g, ' ');