当前位置: 首页 > Web前端 > JavaScript

手写解析url参数方法

时间:2023-03-27 11:22:44 JavaScript

写一个URL解析函数parseParam(url)输入http://www.getui.com?user=superman&id=345&id=678&city=%E6%9D%AD%E5%B7%9E&enabled预期结果{user:'superman',id:[345,678],//重复的key要组装成数组,能转成数字的转成数字类型city:'Hangzhou',//需要解码中文enabled:true,//unspecifiedThekeyofthevalueisagreedtobetrue}手动parseParamfunctionparamParam(url){const[href,params]=url.split('?')constresult={}params&¶ms.split('&').map(item=>{let[key,value=true]=item.split('=')value=typeofvalue==='boolean'?value:decodeURIComponent(value)//翻译中文if(!result[key]){result[key]=value}else{result[key]=result[key]instanceofArray?[].concat(...result[key],value):[].concat(result[key],value)}})returnresult}//执行parseParam('http://www.getui.com?user=superman&id=345&id=678&city=%E6%9D%AD%E5%B7%9E&enabled')//{user:"superman",id:["345","678"],city:"杭州",enabled:true}