獲取Url的代碼如下:window.location.href;
方法一:原生js(假設已經獲得了Url地址)
1 var url = 'https://gitbook.cn/gitchat/geekbooks?tag=JavaScript&name=pwwu&age=24'; 2 var temp1 = url.split('?'); 3 var pram = temp1[1]; 4 var keyValue = pram.split('&'); 5 var obj = {}; 6 for (var i = 0; i<keyValue.length; i++){ 7 var item = keyValue[i].split('='); 8 var key = item[0]; 9 var value = item[1]; 10 obj[key] = value; 11 } 12 console.log(url); 13 console.log(temp1); // ['https://gitbook.cn/gitchat/geekbooks','tag=JavaScript&name=pwwu&age=24'] 14 console.log(pram); // tag=JavaScript&name=pwwu&age=24 15 console.log(keyValue); // ['tag=JavaScript','name=pwwu','age=24'] 16 console.log(obj); // {tag:'JavaScript',name:'pwwu',age:'24'}
總結:主要思路就是將Url用split()分割成不同的塊,返回值為一個數組,一直分割到為 [‘tag=JavaScript’,‘name=pwwu’,‘age=24’]為止,
然后將該數組中的每一項以鍵值對的形式傳進一個空對象obj(這里需要遍歷數組),最后利用obj.name“點”的方式獲取相應參數。
方法二 URLSearchParams()函數(記不住函數名的可以直接在瀏覽器里面打印)
1 var url2 = 'https://gitbook.cn/gitchat/geekbooks?tag=%E5%A4%A7%E6%95%B0%E6%8D%AE&name=gy&age=22'; 2 var temp2 = url2.split('?')[1]; 3 var pram2 = new URLSearchParams('?'+temp2); 4 console.log(pram2.get('tag')); // 大數據 5 console.log(pram2.get('name'));// gy 6 console.log(pram2.get('age')); // 22 7 console.log(temp2); //tag=%E5%A4%A7%E6%95%B0%E6%8D%AE&name=gy&age=22 8
方法三 使用正則表達式
1 //獲取url中的參數方法 2 function getUrlParam(name) { 3 //構造一個含有目標參數的正則表達式對象 4 var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); 5 //匹配目標參數 6 var r = window.location.search.substr(1).match(reg); 7 //返回參數 8 if (r != null) { 9 return unescape(r[2]); 10 } else { 11 return null; 12 } 13 } 14 var ABC = getUrlParam(); 15 console.log(ABC); 16 17
本次暫時介紹以上3種,后續會不斷補充。
HDC.Cloud 華為開發者大會2020 即將於2020年2月11日-12日在深圳舉辦,是一線開發者學習實踐鯤鵬通用計算、昇騰AI計算、數據庫、區塊鏈、雲原生、5G等ICT開放能力的最佳舞台。