实现url参数读取的两种办法

法一:需要引入jQuery

(function ($) {

$.request = (function () {

var apiMap = {};

function request(queryStr) {

var api = {};

if (apiMap[queryStr]) { return apiMap[queryStr]; }

api.queryString = (function () {

var urlParams = {};

var e,

d = function (s) { return decodeURIComponent(s.replace(/\+/g, " ")); },

q = queryStr.substring(queryStr.indexOf('?') + 1),

r = /([^&=]+)=?([^&]*)/g;

while (e = r.exec(q)) urlParams[d(e[1])] = d(e[2]);

return urlParams;

})();

api.getUrl = function () {

var url = queryStr.substring(0, queryStr.indexOf('?') + 1);

for (var p in api.queryString) { url += p + '=' + api.queryString[p] + "&"; }

if (url.lastIndexOf('&') == url.length - 1) { return url.substring(0, url.lastIndexOf('&')); }

return url;

}

apiMap[queryStr] = api;

return api;

}

$.extend(request, request(window.location.href));

return request;

})();

}(jQuery));

用例:

var queryString = $.request(location.href).queryString;

var status=queryString.editStatus;

法二:原生js

function GetQueryString(name) {

var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");

var r = window.location.search.substr(1).match(reg);

if (r != null) return unescape(r[2]); return null;

}

用例:

var openId = GetQueryString("openId");

法三:这个考虑的比较简单的url字符串的情况,建议用以上两种写法

function GetQueryString(str){ 

var arr=window.location.search.substr(1).split("&");

var result="";

for(value in arr){

var temp=arr[value].split("=");

if(temp[0]==str){

result=temp[1];

return result;

}

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,268评论 19 139
  • 以下是常用的代码收集,学习用。转自豪情博客园 1. PC - js 返回指定范围的随机数(m-n之间)的公式 re...
    自由加咖啡阅读 1,041评论 0 1
  • @转自GitHub 介绍js的基本数据类型。Undefined、Null、Boolean、Number、Strin...
    YT_Zou阅读 1,234评论 0 0
  • AnswerYas阅读 260评论 0 0
  • 今天是这些天最糟糕的一天,店员一个一个都不干了,开门上班只有一个人来,一面需要业绩,一面要开工资,家里有孩子...
    Rui青阅读 218评论 0 0