这是之前字节的面试题,本来打算下来用正则试试,结果发现多条参数匹配正则很麻烦,当时不知道怎么解析汉字,下来查到了解析汉字的API。浏览器会将url中的中文参数进行encodeURI编码,解析就用decodeURI。
function getQuery(){
let query
= new Map();
let arr
= window
.location
.search
.substr(1).split('&')
for(let i
=0;i
<arr
.length
;i
++){
let [key
, value
] = arr
[i
].split('=')
value
= decodeURI(value
)
if(query
.has(key
)){
if(typeof query
.get(key
) === 'object'){
query
.set(key
, [...query
.get(key
), value
])
}else{
query
.set(key
, [query
.get(key
), value
])
}
}else{
query
.set(key
, value
)
}
}
return query
;
}
转载请注明原文地址:https://ipadbbs.8miu.com/read-20933.html