1. 程式人生 > >JavaScript解析url引數

JavaScript解析url引數

最近在寫個需要分頁數的網頁,覺得要每頁寫對應頁數的內容太麻煩,想通過向後臺傳入不同的引數以獲取不同的資料,翻了翻書最後用url的引數傳給後臺,順便寫了這篇部落格。

上面這段連結看起來很長,貼上到網址上其實就是在百度中搜索123的頁面,而這個其實就對於著?後面的wd=123,在很多網址中我們經常會看到像這樣的一串內容,其實就是在?後面通過&作為分隔符傳入多個引數,並通過解析這些引數在伺服器獲取不同資料,渲染出不同的頁面,要達到這種效果,首先我們要會解析這些引數。

程式碼如下

// 獲取url引數
function locationExtract(classify) {//傳入要找的引數名
    let url=window.location.search;
    if (url == "" || url.indexOf('=') < 0)
        return;//當url後面沒有引數時直接return結束
    if (url.indexOf('&') < 0) {
        if (url.slice(1).split('=')[0] == classify) {
            return url.slice(1).split('=')[1];
            //當url後面只有一個引數時沒加&分隔符,此時只需判斷第一個是否為自己要找的引數
        }
    }
    let par = url.slice(1).split('&');//去掉?後以&為分隔符分隔引數
    for (let index = 0; index < par.length; index++) {
        let indexClass = par[index].split('=');
        if (indexClass[0] == classify)
            return indexClass[1];
    }
}

封裝以上方法後在上面的連結的控制檯中輸入locationExtract('wd')即可得到'123'。

這只是這次寫的小demo用到的方法,應該還有很多好的方法,希望各位大神不吝賜教,也希望這篇文章對大家有所幫助。