您的位置:首页 > Web前端 > JavaScript

js获取html页面传参

2011-11-24 13:02 435 查看
参考:http://blog.sina.com.cn/s/blog_5f0d2f4b0100ttrd.html

主要原理是使用正则表达式匹配location.search中的字符串。

三个主要方法:

方法

说明

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"));

if(result == null){

return "";

}

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;

}

另外一种方法:

String.prototype.getQueryString = function(name) {
var reg = new RegExp("(^|&|\\?)" + name + "=([^&]*)(&|$)"), r;
if (r = this.match(reg)) return r[2];
return null;
};

使用:location.search.getQueryString("参数名");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: