querystring的处理类

/*
* 对于querystring(形如?userid=222&username=23432sdf)的处理
*/
function PageQuery(q) {
if (q.length > 1)
this.q = q.substring(1, q.length);
else
this.q = null;
//定义键值对
this.keyValuePairs = new Array();
if (this.q) {
var infos = this.q.split("&");
for (var i = 0; i < infos.length; i++) {
//将参数添加到数组中
this.keyValuePairs.push(infos[i]);
}
}
this.getKeyValuePairs = function () { return this.keyValuePairs };

//获得当前参数的个数
this.getLength = function () { return this.keyValuePairs.length };

//根据输入的key,找出相应的value
this.getValue = function (s) {
var length = this.getLength();
for (var i = 0; i < length; i++) {
if (this.keyValuePairs[i].split("=")[0] == s)
return this.keyValuePairs[i].split("=")[1];
}
};

//获得所有参数
this.getParameters = function () {
var parameters = new Array();
var length = this.getLength();
for (var i = 0; i < length; i++) {
parameters.push(
this.keyValuePairs[i].split("=")[0]);
}
return parameters;
}
}

function analysisUrl() {
//可以用this.location.search取得?后面的参数
//
alert(this.location.search);
var page = new PageQuery("?userid=234&username=sdfsd");
// alert(page.getLength());
alert(page.getValue("username"));
var params = page.getParameters();
for (var i = 0; i < params.length; i++) {
alert(params[i]);
}
}
</script>
通过以上的例子验证,这个类别是可以用的。

posted @ 2011-03-29 14:34  公子姬良  阅读(312)  评论(0编辑  收藏  举报