2013-07-10 83 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顯示出來,這將其轉換爲一個普通的空間