需求:截取/获取url上的某个值
应用场景:
(1)带参数跳转页面,从url上取值;
(2)获取url上需要的键值做逻辑判断;
思路:
(1)获取url;
(2)找可截取规律;
(3)通过split()将字符串变成数组获取键值;
实操:
举例:
https://blog.csdn.net/ljtjianting?type=blog&userName=liou&age=19&like=apple-pear-watermelon-orange
需求:获取like的值,并转成数组
方法:若能保障 like 的位置是固定在url各个参数最后面的话,可以用 split() 结合 数组长度 去取
window.location.href.split('&')[window.location.href.split('&').length-1].split('=')[1].split('-')
(若是用iframe包了一层的话,需要用window.parent.location.href
)
结果:[ "apple", "pear", "watermelon", "orang" ]
代码讲解:
// 1、获取页面的 URL地址
let href = window.location.href;
// href = 'https://blog.csdn.net/ljtjianting?type=blog&userName=liou&age=19&like=apple-pear-watermelon-orang'
// 2、找规律,参数都以 & 隔开,因此用 & 作标识将字符串转换成数组
let paramArr = href.split('&');
// paramArr = [
// "https://blog.csdn.net/ljtjianting?type=blog",
// "userName=liou",
// "age=19",
// "like=apple-pear-watermelon-orang"
// ]
// 3、取出 like所在的元素
let likeStr = paramArr[paramArr.length-1];
// likeArr = 'like=apple-pear-watermelon-orang'
// 4、获取 like 的字符串值,用 & 作标识将字符串转换成数组
let likeArr = likeStr.split('=');
// likeArr = [
// "like",
// "apple-pear-watermelon-orang"
// ]
// 5、取 like 的键值,并将其从字符串转为数组
let like = likeArr[1].split('-')
// like = [
// "apple",
// "pear",
// "watermelon",
// "orang"
// ]