javascript之小積累-獲取url傳參的值

  在項目中常常遇到兩個頁面傳值的狀況,我採起的方案是經過url後面加參數,也就是get方式傳值。瀏覽器

  這個方式的優勢是:傳值、獲取很方便。url

  缺點是:1. 把參數都暴露在瀏覽器中了,一些敏感信息不建議這樣傳;spa

      2. 要是有搗蛋的人把瀏覽器的地址後綴改改,那樣參數就有可能被改了;code

      3. 每一個瀏覽器都有個最大的長度限制,其中ie最少,爲2048 字符。blog

  好了,迴歸正題,當用get方式傳值的時候,須要獲取一些須要值,有兩個方案,有一個是本身寫的:字符串

  方案一:get

1  function getQueryString (name) {
2         var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"),
3             r = window.location.search.substr(1).match(reg);
4         if (r != null) {
5             return unescape(r[2]);
6         }
7         return '';
8  }

  這個方案是用正則匹配name的值。it

  方案二:io

 1 function getUrlParam(name) {
 2         var url = window.location.herf.search.split('?')[1],
 3             arrs = url.split('&');
 4         for(var i=0; i<arrs.length; i++) {
 5             if(arrs[i].split('=')[0] === name) {
 6                 return arrs[i].split('=')[1];
 7              }
 8         }
 9         return '';
10 }

  這個方案是經過字符串分割,加上for循環實現。for循環

  總結:原理其實都是對url這個字符串裏面的值進行匹配查找,都是對字符串的一些基本操做,因此學好基礎,才能建造高樓大廈!

相關文章
相關標籤/搜索