案例:queryURLParameter
获取地址栏中URL地址问号传递的参数值。
需求:把问题传递的参数值分别解析出来、
//方案一:
var questionIndex=str.indexOf(’?’);
str = str.substring(questionIndex+1);
console.log();
var ary =str.split('&');
console.log(ary);
var obj={};
for(var i=0;i<ary.length;i++){
var cur=ary[i];
var curAry=cur.split('='),
key=curAry[0],
value=curAry[1];
console.log(obj);
}
//方案二:
function queryURLParameter(url){
//URL 传递的参数(我们当前要解析的URL地址)
var quesIndex=url.indexOf('?');
obj={};
if(quesIndex===-1){//url中没有问号传参,直接返回空对象。
return obj;
}
url=url.substr(quesIndex+1);
}
//方案三(正则)
String.prototype.myQueryURLParameter=function myQueryURLParameter(){
var obj={},
reg=/([?&]+)=([=?&]+)/g;
this.replace(reg,function(){
var arg=arguments;
obj[arg[1]]=arg[2];
});
return obj;
};
var str=‘https://www.baidu.com/s?ie=utf-8&f=3&rsv_bp=1&rsv_idx=1&tn=baidu&wd=javascript&oq=javascript&rsv_pq=a777ee1c00660426&rsv_t=cdffxtPRtWpq5Z3F6jhBicUGds57tE’;
console.log(str.myQueryURLParameter);
//{wd:‘javascript’,rsv_pq:a777ee1c00660426,rsv_t:cdffxtPRtWpq5Z3F6jhBicUGds57tE}