js 通過url獲取里面的參數值


場景描述:當我們從一個頁面要帶有一兩個值跳轉到另一個頁面,另一個頁面要使用這些參數的時候,我們就需要通過js獲取這些參數啦。

先貼上代碼:

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

這里我們使用正則,通過找到 ‘name’ ,然后獲取我們需要的參數。這里的name就是你傳過來的(例如:id,userName之類的都可以)。

下面我們具體講一下:

    reg:(這個是reg的結果,id是我傳過來的)

/(^|&)id=([^&]*)(&|$)/i

   r: (這里打印出來的是一個數組,你可以自己選擇符合我們自己需求的來使用。這里我需要用到它的值,所以取 r[2]

["id=10", "", "10", "", index: 0, input: "id=10"]

 調用的時候只需要這樣使用:

getQueryString("id")//這里我需要獲取url里面的id的值

 正常情況以上方法可以實現需求,但是有一種情況上面方式行不通。

vue 的路由包含#號的情況下,我們只用通過另外一種方式實現:

function getQueryString (name) {
  /* eslint-disable */
  return decodeURIComponent((new RegExp('[?|&]'+name+'='+'([^&;]+?)(&|#|;|$)').exec(location.href)||[, ''])[1].replace(/\+/g, '%20')) || null
  /* eslint-enable */
}

調用的時候:

getQueryString('id') // 這里我需要獲取url里面的id的值

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM