JS 分割url参数
url地址示例:http://pages/index/index?id=13&name=wangwu&age=19
let url = "http://pages/index/index?id=12&name=zhangsan&age=18";
let obj = {};
let str = url.split("?")[1].split("&");
for (let i = 0; i < str.length; i++) {
let a = str[i].split('=')
obj[a[0]] = a[1]
}
console.log(obj);
分解讲析:
url.split("?")[1] // id=12&name=zhangsan&age=18
/* 以“ ? ”分割url为两个数组,数组下标为0的,是url路径;数组下标为1的,是url参数。我们取下标为1的值
["http://pages/index/index", "id=12&name=zhangsan&age=18"]
*/
url.split("?")[1].split("&") // ["id=12", "name=zhangsan", "age=18"]
/* 将上步下标为1的值取出后,再次以“ & ”分割成新的数组
*/
for (let i = 0; i < str.length; i++) {
let a = str[i].split('='); // 小1
obj[a[0]] = a[1]; // 小2
}
/* 将上步分割好的数组进行循环,将每一个数组值以 “ = ”分割成小段新数组 // 小1
["id", "12"]
["name", "zhangsan"]
["age", "18"]
// 小2 将分割好的小段数组组成对象形式并存储在定义好的obj对象中
obj结果: {id: "12", name: "zhangsan", age: "18"}
*/
函数写法
let url="www.baidu.com?name=1&age=9&like=vue" //示例1
let ur2="www.baidu.com?name=13&age=93&like=vuesss"//示例1
function fn(url) {
let obj = {}
let str = url.split("?")[1].split("&");
for (var i = 0; i < str.length; i++) {
let a = str[i].split('=')
obj[a[0]] = a[1]
}
return obj
}
// 方式一
fn(ur1)
console.log(fn(ur1));
// 方式二
console.log(fn("www.baidu.com?name=13&age=93&like=vuesss"));