解析URL:
const ur = "https://www.baidu?width=251&height=360&pdi=85#name"
const parms = queryParse(ur)
console.log(parms)//{width:251,height:360,pdi:85}
function queryParse(url) {
//1.遇到?分隔字符串 indexOf + slice
const params = url.slice(url.indexOf('?') + 1);
/*indexOf返回指定字符在字符串中首次出现的位置的下标*/
/*slice截取字符串 参数1:开始位置 参数2:结束位置(省略会截取后面所有字符串)*/
//2.将字符串按&分隔为数组
const paramsArray = params.split('&');
//3.创建一个对象
const obj = {};
//4.遍历数组
for (let i = 0; i < paramsArray.length; i++) {
const temp = paramsArray[i].split('=');
if (paramsArray[i].includes('#')) {
obj[temp[0]] = temp[1].split('#')[0];
}else{
obj[temp[0]] = temp[1]
}
}
return obj;
}
补充知识点