用document.write结果中的空格替换%20

时间:2018-12-30 01:56:43

标签: javascript html

我正在使用以下代码来显示由点击跟踪程序在网页的URL中传递的结果。以下是“ / head”标签之前的内容:

<script>    
  function getURLParameter(name) {  
    var query = window.location.search.substring(1);  
    var vars = query.split("&");  
    for (var i=0;i<vars.length;i++) {  
      var pair = vars[i].split("="); 
      if(pair[0] === name){return pair[1];}  
    }  
    return "";
  }
</script>

以下是“ body”标记中的显示结果:

 <script>document.write(getURLParameter('name'))</script>

但是,问题是,如果结果是两个单词,则显示看起来像"Word20%Word"

有人可以帮忙吗?

谢谢。

2 个答案:

答案 0 :(得分:2)

要使具有非URL友好字符(例如空格)的字符串变为url友好,我们对其进行编码。

用于此目的的浏览器api是encodeURIComponent

要解码回一个编码的字符串,我们使用decodeURIComponent

const string = 'i have spaces';

const encoded = encodeURIComponent(string);

console.log(encoded);

const decoded = decodeURIComponent(encoded);

console.log(decoded);

答案 1 :(得分:0)

您要签出decodeURIComponent(),它负责将这些实体(%20等)解码回相应的对应实体:

function getURLParameter(name) {  
    var query = window.location.search.substring(1);  
    var vars = query.split("&");
    for (var i=0;i<vars.length;i++) {  
        var pair = vars[i].split("="); 
        if(pair[0] === name){return decodeURIComponent(pair[1]);}  
    }  
    return "";
}