2011-05-13 137 views
0

我發現了一個庫,jQuery URL Parser,它似乎是解析出URL各個段的全功能庫。我試圖進一步,但解析的查詢參數。如何將URL安全查詢參數解析爲可讀字符串

例如,給定URL "http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=rm+-rf+%2F"我想獲得"rm -rf /"q參數。任何建議將不勝感激。

作爲一個便箋,我沒有對當前頁面的URL進行操作,所以任何location魔法都不適用。

回答

2

看起來好像你參考下稱爲Query string parameters節給出確實可以檢索查詢字符串值庫:

的.PARAM()方法用於返回的查詢字符串參數 值。

傳遞一個字符串來訪問 參數的值:

$.url('http://allmarkedup.com?sky=blue&grass=green').param('sky'); // returns 'blue' If no argument is passed in it will return an object literal containing a key:value map of all the querystring parameters.

$.url('http://allmarkedup.com?sky=blue&grass=green').param(); // returns { 'sky':'blue', 'grass':'green' } Note that the .param() method will work on both ampersand-split and semicolon-split querystrings.

+2

這可能應該與'decodeURICompone一起使用nt'來實現OP想要的東西.. – 2011-05-13 22:26:06

+0

Mellamokb的回答,Shadow Wizard的評論和用空格替換'+'s的組合工作完美。謝謝! – bloudermilk 2011-05-13 22:53:19

0

您可以使用自己的小型輕量的代碼來做到這一點:

function getParam(url, param) { 
     if (!url.indexOf('?')) { 
      return 'undefined'; 
     } 
     url = url.split('?')[1]; 
     var arr = url.split('&'); 
     for (var i = 0; i < arr.length; i++) { 
      var key = arr[i].split('=')[0], val = arr[i].split('=')[1]; 
      if (key === param) { 
       return val; 
      } 
     } 
     return 'undefined'; 
    } 
相關問題