案例:JS獲取URL中引數值的方法
阿新 • • 發佈:2018-12-16
假設位址列地址是:http://localhost:3000/m/productlist.html?search=%E9%9E%8B 思路分析: 1.location.search//得到?search=%E9%9E%8B 2.location.search.substring(1)//"search=%E9%9E%8B"(substring是擷取字串,引數1代表從什麼時候擷取,引數二代表結束位置) 3.location.search.substring(1).split('=');//["search", "%E9%9E%8B"],split是分割的意思 4.location.search.substring(1).split('=').[1]//"%E9%9E%8B" 5.decodeURI("%E9%9E%8B")//鞋
真實案例:
方法1:
// http://localhost:3000/m/productlist.html?search=%E9%9E%8B&price=1&num=2
// 根據url中引數名獲取值
// ?search=%E9%9E%8B&price=1&num=2 引數
// 引數名 = search 引數值 = 鞋
// 引數名 = price 引數值 = 1
// 引數名 = num 引數值 = 2
function getQueryString(name){
// console.log(location);
// console.log(location.search);
// 1. 獲取整個url引數的值的字串 去掉第一個字串 按照&分割成一個數組
var urlParams = location.search.substr(1).split('&');
// var urlParams = location.search.substring(1,location.search.length);
// console.log(urlParams);
for (var i = 0; i < urlParams.length; i++) {
// search=%E9%9E%8B =前面引數名 以=分割 如果等號前面的和引數名一樣 返回=號後面的引數的值
if(name == urlParams[i].split('=')[0]){
// 返回當前引數的值 同時轉碼
return decodeURI(urlParams[i].split('=')[1]);
}
}
}
console.log(getQueryString('search'));//鞋
console.log(getQueryString('price'));//1
console.log(getQueryString('num'));//2
方法2:(參考文件:https://www.cnblogs.com/jiguisheng/p/5735030.html)
function getQueryString(name) {
var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
var r = window.location.search.substr(1).match(reg);
//console.log(r);
if (r != null) {
//轉碼方式改成 decodeURI
return decodeURI(r[2]);
}
return null;
}