function URL(name){
if(typeof name=="undefined"){
throw new Error("你需要传入一个url作为参数");
}
this.name=name;
}
URL.prototype={
constructor:URL,
addArg:function(key,value){
if(this.name.indexOf("?")==-1)
{
this.name+="?";
}else{
this.name+="&";
}
this.name+=encodeURIComponent(key)+"="+
encodeURIComponent(value);
return this.url;
},
//URL 参数查询
getQueryString:function(key){
var reg = new RegExp("(^|&)"+ key +"=([^&]*)(&|$)");
var r = this.getSearchString().substr(1).match(reg);
if(r!=null)return unescape(r[2]); return null;
},
//返回URL查询字符串
getSearchString:function(){
var mark=this.name.indexOf("?");
if(mark!=-1){
return decodeURIComponent(this.name.substr(mark));
}else
{
return "";
}
}
}
使用方法
addArg(key,value) 添加参数 key-value 表示要添加参数的键值对
getQueryString(key) 获得key参数值
getSearchString() 获得 所有参数字符串,包括“?”
下面是一个简单的小例子:
var url=new URL("http://www.baidu.com");
console.log(url.name); //http://www.baidu.com
url.addArg("message","周六的天气真好")
console.log(url.name);//http://www.baidu.com?message=%E5%91%A8%E5%85%AD%E7%9A%84%E5%A4%A9%E6%B0%94%E7%9C%9F%E5%A5%BD
url.addArg("value","123467916")
console.log(url.name);//http://www.baidu.com?message=%E5%91%A8%E5%85%AD%E7%9A%84%E5%A4%A9%E6%B0%94%E7%9C%9F%E5%A5%BD&value=123467916
console.log(url.getQueryString("value"));//123456
以后有其他的需要再写