从location的search属性值中解析出每个请求参数的key和value值
function getSearchParams(search) {
const searchParams = {}
const searchStr = search.substring(1) // 如果location中有search值,去除search值中的第一个字符‘?’
const searchArr = searchStr.length ? searchStr.split('&') : [] // 以 & 符为分隔符,解析出key value 组合,组合的形式为'key=value'
searchArr.forEach(item => {
let keyAndValue = item.split('=') // 以 = 为分隔符,解析出key 和 value,其中数组的第一项为key,数组的第二项为value
let key = decodeURIComponent(keyAndValue[0]) // 如果查询参数中包含中文,会被编码成一串字符串,需要使用decodeURIComponent进行解码
let value = decodeURIComponent(keyAndValue[1])
if(key){
searchParams[key] = value
}
})
return searchParams
}
getSearchParams('?name=sunyuxia&age=18') // {name: "sunyuxia", age: "18"}
链接标签
<a href="detail.html?id=3">商品1</a>
网友评论