获取地址栏中的参数
<script>
//需要获取该字符串中问好后面和井号后面的值
//http://www.zhufengpeixun.cn/?lx=1&name=JS&from=baidu#video
// 1、先获取问号和井号(通过索引找到。一般字符串想要找到某一个字符,都是通过indexOf找到其索引,再找到值)
function queryURLParams(url){
let queryWenhao=url.indexOf('?'),
queryJinghao=url.lastIndexOf('#'),
wenhaoText='',
jinghaoText=''
//获取到问号和井号的索引后,通过字符串截取到值,在截取之前,须先判断一下索引是否存在
queryJinghao===-1?queryJinghao=url.length:null
jinghaoText=url.substring(queryJinghao+1) //video
if (queryWenhao>-1) {
wenhaoText=url.substring(queryWenhao+1,queryJinghao) //lx=1&name=JS&from=baidu
}
//将截取到的值先判断是否有值,在将其插入到对象中
let obj={}
jinghaoText.length>0?obj['HASH']=jinghaoText:null
if (wenhaoText) {
let arr= wenhaoText.split("&")
//对于值有多个时,通过数组循环(基本上forEach和map用的多一点)的方式遍历
arr.forEach(item => {
let arrItem=item.split("=")
let key=arrItem[0],
value=arrItem[1]
obj[key]=value
});
}
return obj
}
let urlStr='http://www.zhufengpeixun.cn/?lx=1&name=JS&from=baidu#video'
// let urlStr='http://www.zhufengpeixun.cn/?lx=1&name=JS&from=baidu'
// let urlStr='http://www.zhufengpeixun.cn/#video'
let result=queryURLParams(urlStr)
console.log(result)
/*
HASH: "video"
from: "baidu"
lx: "1"
name: "JS"
*/
</script>