一、查詢字符串參數處理-插件方式處理
querystring.stringify()
接收3個參數
第一個參數,解析後的 url 對象
querystring.stringify({name:'dyh',course:['jade','node'],from:'zh'})
//運行結果
'name=dyh&course=jade&course=node&from=zh'
第二個參數,query參數之間的鏈接符號,默認是 &
querystring.stringify({name:'cg',course:['jade','node'],from:'zh'},'$')
//運行結果
'name=cg$course=jade$course=node$from=zh'
第三個參數,key和value之間的符號,默認是 =
querystring.stringify({name:'dyh',course:['jade','node'],from:'zh'}, '$', ':')
//運行結果
'name:dyh$course:jade$course:node$from:zh'
querystring.parse()
接收3個參數
第一個參數,querystring 字符串
querystring.parse('name=dyh&course=jade&course=node&from=zh')
// 運行後
{
name: 'dyh',
course: ['jade', 'node'],
from: 'zh'
}
第二個參數,query參數之間的分隔符號,如果不是默認的分隔符號,必須要傳,否則解析不了
querystring.parse('name=dyh$course=jade$course=node$from=zh', '$')
// 運行後
{
name: 'dyh',
course: ['jade', 'node'],
from: 'zh'
}
第三個參數,key和value之間的符號,默認是=,如果不是默認的,就必須要傳,否則解析不了
querystring.parse('name:dyh$course:jade$course:node$from:zh', '$', ':')
// 運行後
{
name: 'dyh',
course: ['jade', 'node'],
from: 'zh'
}
querystring.escape()
字符串的轉譯
querystring.escape('小代')
'%E5%B0%8F%E4%BB%A3'
querystring.unescape()
字符串的反轉譯
querystring.unescape('%E5%B0%8F%E4%BB%A3')
'小代'
原生js處理查詢參數的方法見-->博客
二、正則法-獲取URL中傳遞的參數
function getQueryString(name) {
var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
var r = window.location.search.substr(1).match(reg);
if (r != null) {
return unescape(r[2]);
}
return null;
}
// 這樣調用:
alert(GetQueryString("參數名1"));
alert(GetQueryString("參數名2"));
alert(GetQueryString("參數名3"));
三、split拆分法
function GetRequest() {
var url = location.search; //獲取url中"?"符後的字串
var theRequest = new Object();
if (url.indexOf("?") != -1) {
var str = url.substr(1);
strs = str.split("&");
for(var i = 0; i < strs.length; i ++) {
theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);
}
}
return theRequest;
}
var Request = new Object();
Request = GetRequest();
// var 參數1,參數2,參數3,參數N;
// 參數1 = Request['參數1'];
// 參數2 = Request['參數2'];
// 參數3 = Request['參數3'];
// 參數N = Request['參數N'];
function GetQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg); //獲取url中"?"符後的字符串並正則匹配
var context = "";
if (r != null)
context = r[2];
reg = null;
r = null;
return context == null || context == "" || context == "undefined" ? "" : context;
}
alert(GetQueryString("q"));
四、單個參數的獲取方法
function GetRequest() {
var url = location.search; //獲取url中"?"符後的字串
if (url.indexOf("?") != -1) { //判斷是否有參數
var str = url.substr(1); //從第一個字符開始 因爲第0個是?號 獲取所有除問號的所有符串
strs = str.split("="); //用等號進行分隔 (因爲知道只有一個參數 所以直接用等號進分隔 如果有多個參數 要用&號分隔 再用等號進行分隔)
alert(strs[1]); //直接彈出第一個參數 (如果有多個參數 還要進行循環的)
}
}