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

javascript 获取url中的参数 js获取url中的指定参数值_调用方法

 

 方法四

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。