我發現了一個庫,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
魔法都不適用。
我發現了一個庫,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
魔法都不適用。
看起來好像你參考下稱爲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.
您可以使用自己的小型輕量的代碼來做到這一點:
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';
}
這可能應該與'decodeURICompone一起使用nt'來實現OP想要的東西.. – 2011-05-13 22:26:06
Mellamokb的回答,Shadow Wizard的評論和用空格替換'+'s的組合工作完美。謝謝! – bloudermilk 2011-05-13 22:53:19