您的位置:首页 > 产品设计 > UI/UE

JS获取URL中参数值(QueryString)的4种方法分享

2017-05-27 16:58 597 查看
方法一:正则法

functiongetQueryString(name){
varreg=newRegExp('(^|&)'+name+'=([^&]*)(&|$)','i');
varr=window.location.search.substr(1).match(reg);
if(r!=null){
returnunescape(r[2]);
}
returnnull;
}
//这样调用:
alert(GetQueryString("参数名1"));

alert(GetQueryString("参数名2"));

alert(GetQueryString("参数名3"));


如上述方法遇到中文乱码,则可改用以下方法(decodeURI),后台的方法同理:

functiongetQueryString(name){
varreg=newRegExp("(^|&)"+name+"=([^&]*)(&|$)","i");
varr=window.location.search.substr(1).match(reg);
if(r!=null)returndecodeURI(r[2]);returnnull;
}

//这样调用:
alert(GetQueryString("参数名1"));

alert(GetQueryString("参数名2"));

alert(GetQueryString("参数名3"));



方法二:split拆分法

functionGetRequest(){
varurl=location.search;//获取url中"?"符后的字串
vartheRequest=newObject();
if(url.indexOf("?")!=-1){
varstr=url.substr(1);
strs=str.split("&");
for(vari=0;i<strs.length;i++){
theRequest[strs[i].split("=")[0]]=unescape(strs[i].split("=")[1]);
}
}
returntheRequest;
}
varRequest=newObject();
Request=GetRequest();
//var参数1,参数2,参数3,参数N;
//参数1=Request['参数1'];
//参数2=Request['参数2'];
//参数3=Request['参数3'];
//参数N=Request['参数N'];


方法三:又见正则

functionGetQueryString(name){
varreg=newRegExp("(^|&)"+name+"=([^&]*)(&|$)","i");
varr=window.location.search.substr(1).match(reg);//获取url中"?"符后的字符串并正则匹配
varcontext="";
if(r!=null)
context=r[2];
reg=null;
r=null;
returncontext==null||context==""||context=="undefined"?"":context;
}
alert(GetQueryString("q"));


方法四:单个参数的获取方法

functionGetRequest(){
varurl=location.search;//获取url中"?"符后的字串
if(url.indexOf("?")!=-1){//判断是否有参数
varstr=url.substr(1);//从第一个字符开始因为第0个是?号获取所有除问号的所有符串
strs=str.split("=");//用等号进行分隔(因为知道只有一个参数所以直接用等号进分隔如果有多个参数要用&号分隔再用等号进行分隔)
alert(strs[1]);//直接弹出第一个参数(如果有多个参数还要进行循环的)
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: