2013-07-10 68 views
0

我想使用Javascript/HTML提取URL参数。提取url参数后删除空格

下面是代码,我有它的工作很好,如果我不给参数之间的任何空格。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
    "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
    <head> 

    </head> 
    <body> 
     <script> 
       function getUrlVars() { 
     var vars = {}; 
     var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) { 
     vars[key] = value; 
     }); 
     return vars; 
     } 
      var first = getUrlVars()["id"]; 

      alert(first); 

     </script> 
    </body> 
</html> 

但是,只要我给参数之间的空格,我总是得到%20之间。如何跳过空格。

假设如果下面是URL-

/test.html?id=123 456

然后在警告框,我总是看到原样

123%20456

如何避免使用上述正则表达式我的空间在代码中有。

+0

那么你所要的输出是什么代替? – talemyn

+0

'vars [key] = decodeURIComponent(value);'? –

回答

2

如果您不希望URL编码(%20)出现,您可以使用unescape()函数。

var first = unescape(first); 

我会建议使用更好的变量名,而只是用这个无论你遇到问题,%20显示出来,这将其转换为一个普通的空间