html获取querystring,使用js获取QueryString的方法小结

本文原理是使用正则表达式匹配location.search中的字符串。其中三个主要函数为 getQueryString()、getQueryStringByName(name)和getQueryStringByIndex(index)

三个主要方法:

方法

说明

getQueryString

获取QueryString的数组。

例如路径QueryStringDemo.html?id=5&type=1&flag=0

调用后返回["id=5", "type=1", "flag=0"]

getQueryStringByName

根据QueryString参数名称获取值

getQueryStringByIndex

根据QueryString参数索引获取值

//获取QueryString的数组

function getQueryString(){

var result = location.search.match(new RegExp("[\?\&][^\?\&]+=[^\?\&]+","g"));

for(var i = 0; i < result.length; i++){

result[i] = result[i].substring(1);

}

return result;

}

//根据QueryString参数名称获取值

function getQueryStringByName(name){

var result = location.search.match(new RegExp("[\?\&]" + name+ "=([^\&]+)","i"));

if(result == null || result.length < 1){

return "";

}

return result[1];

}

//根据QueryString参数索引获取值

function getQueryStringByIndex(index){

if(index == null){

return "";

}

var queryStringList = getQueryString();

if (index >= queryStringList.length){

return "";

}

var result = queryStringList[index];

var startIndex = result.indexOf("=") + 1;

result = result.substring(startIndex);

return result;

}

测试页面路径:QueryStringDemo.html?id=5&type=1&flag=0

页面加载时:

20100228080712320.jpg

在QueryString's name后的文本框中输入要获取的QueryString的名称获取相应的值:

20100228080712811.jpg

在QueryString's index后的文本框中输入要获取的QueryString的索引获取相应的值(索引从0开始):

20100228080712837.jpg

这样就可以在页面中方便的获取QueryString的值了。最后附上测试页面QueryStringDemo.html的源代码:

QueryString获取演示代码 www.jb51.net

//获取QueryString的数组

function getQueryString(){

var result = location.search.match(new RegExp("[\?\&][^\?\&]+=[^\?\&]+","g"));

for(var i = 0; i < result.length; i++){

result[i] = result[i].substring(1);

}

return result;

}

//根据QueryString参数名称获取值

function getQueryStringByName(name){

var result = location.search.match(new RegExp("[\?\&]" + name+ "=([^\&]+)","i"));

if(result == null || result.length < 1){

return "";

}

return result[1];

}

//根据QueryString参数索引获取值

function getQueryStringByIndex(index){

if(index == null){

return "";

}

var queryStringList = getQueryString();

if (index >= queryStringList.length){

return "";

}

var result = queryStringList[index];

var startIndex = result.indexOf("=") + 1;

result = result.substring(startIndex);

return result;

}

//绑定当控件高亮选中时,点击“回车键”时执行的操作

//control:要绑定事件的控件

//func:要执行的方法

function bindEnterEvent(control, func){

control.onkeypress = function(){

if (event.keyCode == 13){

func();

}

}

}

//根据输入的QueryString名称获取值

function getByName(){

var name = document.getElementById("txtQueryStringName").value;

document.getElementById("txtResult").innerHTML = getQueryStringByName(name);

}

//根据输入的QueryString的索引获取值

function getByIndex(){

var index = document.getElementById("txtQueryStringIndex").value;

document.getElementById("txtResult").innerHTML = getQueryStringByIndex(index);

}

QueryString :

QueryString's name : 

QueryString's index :

结果 :

//显示所有QueryString

document.getElementById("queryString").innerHTML = getQueryString();

//为txtQueryStringName绑定回车事件

bindEnterEvent(txtQueryStringName, getByName);

//为txtQueryStringIndex绑定回车事件

bindEnterEvent(txtQueryStringIndex, getByIndex);

pdf版下载地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值