js獲取url中的指定參數值


vue開發,在頁面中我們可以通過this.$route.query.id來獲取id值,但是在utils/index.js文件中,有時我們也需要拿到指定參數值,就不能使用路由方法了

方法一:通過location.search可以獲取到url拼接的參數(前面帶有?號)

function getUrlParams(name) {
    let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
    let param = window.location.search.substr(1).match(reg);
    return param && param[2];
 }

 

方法二

///獲取url中指定參數
        // <param name="paras">參數名稱</param>
        ///
        function request(paras) {
            var url = location.href;
            var paraString = url.substring(url.indexOf("?") + 1, url.length).split("&");
            var paraObj = {}
            for (i = 0; j = paraString[i]; i++) {
                paraObj[j.substring(0, j.indexOf("=")).toLowerCase()] = j.substring(j.indexOf("=") + 1, j.length);
            }
            var returnValue = paraObj[paras.toLowerCase()];
            if (typeof (returnValue) == "undefined") {
                return "";
            } else {
                return returnValue;
            }
        }

方法三

function getUrlVars() {
        var vars = {};
        var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi,
            function (m, key, value) {
                vars[key] = value;
            }
        );
        return vars;
    }

使用如:

http://localhost?name=xxg

getUrlVars()["name"] 返回的值為 xxg

 

 方法四

function GetUrlParam(paraName) {
    var url = document.location.toString();
    var arrObj = url.split("?");
    if (arrObj.length > 1) {
      var arrPara = arrObj[1].split("&");
      var arr;
      for (var i = 0; i < arrPara.length; i++) {
        arr = arrPara[i].split("=");

        if (arr != null && arr[0] == paraName) {
          return arr[1];
        }
      }
      return "";
    }
    else {
      return "";
    }
  }

調用方法:GetUrlParam(“id”);
舉例說明:
假如當網頁的網址有這樣的參數 test.htm?id=896&s=q&p=5,則調用 GetUrlParam(“p”),返回 5。


免責聲明!

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



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