`

js获取url的参数和值的N种有效方法

阅读更多
function getParameterByName(name)
{
  name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
  var regexS = "[\\?&]" + name + "=([^&#]*)";
  var regex = new RegExp(regexS);
  var results = regex.exec(window.location.search);
  if(results == null)
    return "";
  else
    return decodeURIComponent(results[1].replace(/\+/g, " "));
}


var urlParams = {};
(function () {
    var match,
        pl     = /\+/g,  // Regex for replacing addition symbol with a space
        search = /([^&=]+)=?([^&]*)/g,
        decode = function (s) { return decodeURIComponent(s.replace(pl, " ")); },
        query  = window.location.search.substring(1);

    while (match = search.exec(query))
       urlParams[decode(match[1])] = decode(match[2]);
})();


function getParameterByName(name) {
    var match = RegExp('[?&]' + name + '=([^&]*)')
                    .exec(window.location.search);
    return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
}


var qs = (function(a) {
    if (a == "") return {};
    var b = {};
    for (var i = 0; i < a.length; ++i)
    {
        var p=a[i].split('=');
        if (p.length != 2) continue;
        b[p[0]] = decodeURIComponent(p[1].replace(/\+/g, " "));
    }
    return b;
})(window.location.search.substr(1).split('&'));


Google method
function (b) {
    var c = typeof b === "undefined";
    if (a !== h && c) return a;
    for (var d = {}, b = b || k[B][vb], e = b[p]("?"), f = b[p]("#"), b = (f === -1 ? b[Ya](e + 1) : [b[Ya](e + 1, f - e - 1), "&", b[Ya](f + 1)][K](""))[z]("&"), e = i.dd ? ia : unescape, f = 0, g = b[w]; f < g; ++f) {
        var l = b[f][p]("=");
        if (l !== -1) {
            var q = b[f][I](0, l),
                l = b[f][I](l + 1),
                l = l[Ca](/\+/g, " ");
            try {
                d[q] = e(l)
            } catch (A) {}
        }
    }
    c && (a = d);
    return d
}


(function($) {
    $.QueryString = (function(a) {
        if (a == "") return {};
        var b = {};
        for (var i = 0; i < a.length; ++i)
        {
            var p=a[i].split('=');
            if (p.length != 2) continue;
            b[p[0]] = decodeURIComponent(p[1].replace(/\+/g, " "));
        }
        return b;
    })(window.location.search.substr(1).split('&'))
})(jQuery);


$.urlParam = function(name){
    var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href);
    if (!results)
    { 
        return 0; 
    }
    return results[1] || 0;
}


var getParamValue = (function() {
    var params,
        resetParams = function() {
            var query = window.location.search,
                regex = /[?&;](.+?)=([^&;]+)/g,
                match;

            params = {};

            if (query) {
                while (match = regex.exec(query)) {
                    params[match[1]] = decodeURIComponent(match[2]);
                }
            }    
        };

    window.addEventListener
    && window.addEventListener('popstate', function() {
        resetParams();
    });

    resetParams();

    return function(param) {
        return params.hasOwnProperty(param) ? params[param] : null;
    }

})();​


// The plugin jQuery-URL-Parser https://github.com/allmarkedup/jQuery-URL-Parser
$.url.param("itemID")


;(function ($) {
    $.extend({      
        getQueryString: function (name) {           
            function parseParams() {
                var params = {},
                    e,
                    a = /\+/g,  // Regex for replacing addition symbol with a space
                    r = /([^&=]+)=?([^&]*)/g,
                    d = function (s) { return decodeURIComponent(s.replace(a, " ")); },
                    q = window.location.search.substring(1);

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

                return params;
            }

            if (!this.queryStringParams)
                this.queryStringParams = parseParams(); 

            return this.queryStringParams[name];
        }
    });
})(jQuery);

// 使用
var someVar = $.getQueryString('myParam');


http://medialize.github.com/URI.js/
var data = URI('?foo=bar&bar=baz&foo=world').query(true);
data == {
  "foo": ["bar", "world"],
  "bar": "baz"
}


function getUrlParams() {
    var result = {};
    var params = (window.location.search.split('?')[1] || '').split('&');
    for(var param in params) {
        if (params.hasOwnProperty(param)) {
            paramParts = params[param].split('=');
            result[paramParts[0]] = decodeURIComponent(paramParts[1] || "");
        }
    }
    return result;
}
分享到:
评论

相关推荐

    flex获得html容器传递的url参数值

    在Flex中,我们可以通过`ExternalInterface.call()`方法调用JavaScript函数,然后让JavaScript处理获取URL参数的任务。 在JavaScript中,我们可以利用`window`对象和`location`对象来获取URL参数。`window.location...

    JS获取url参数详细

    在JavaScript中,获取URL参数是常见的需求...总结,JavaScript获取URL参数主要有字符串分割和正则表达式两种方法,每种方法都有其适用场景。理解并熟练运用这些技巧,能够帮助开发者更好地处理网页动态交互和数据获取。

    JSP中js传递和解析URL参数以及中文转码和解码问题

    1.传递参数: 代码如下: var pmt = ‘sensor=’+ encodeURI(encodeURI(sensor))+’&device=’+encodeURI(encodeURI(device))+’&instrument=’;...接收和解析参数 代码如下: //获取URL参数 function GetRequest()

    Flex获得URL参数值.doc

    `getParams()`函数通过`ExternalInterface.call()`调用JavaScript获取URL参数字符串,然后使用`split()`方法将其拆分为参数对,最后将这些参数对存储在`params`对象中。 总的来说,通过理解Flex与JavaScript之间的...

    页面跳转js获取传递的参数

    本文将详细介绍几种通过JavaScript实现页面跳转并获取传递参数的方法。 #### 方法一:使用`window.location.href` ```javascript // 通过修改当前窗口的location.href属性来实现页面跳转,并附带参数 window....

    AS语言获取url参数的说明

    ### AS语言获取URL参数详解 在AS(ActionScript)编程中,经常需要处理与网络相关的操作,例如解析URL中的参数。这些参数对于动态网站或应用来说至关重要,它们可以帮助开发者了解用户的请求并据此提供相应的服务。...

    domino xpages URL傳值

    在Lotus Domino XPages开发中,URL传值是一个常见的需求,它允许开发者通过URL传递参数到XPage,以便在页面加载时...通过理解并熟练运用`XSPContext`和`XSPUrl`对象的方法,你可以轻松地处理各种URL参数的传递和获取。

    js国际化、读取preperties文件信息

    JavaScript 国际化(i18n)是网站或应用程序为了支持不同地区和语言而进行的一种设计和开发方法。为了实现这一目标,开发者通常会使用特定的格式存储多语言资源,如`.properties`文件。这些文件包含了键值对,其中键...

    107个常用Javascript语句参数写法

    JavaScript支持六种基本数据类型:`String`、`Number`、`Boolean`、`Null`、`Undefined`和`Symbol`,以及复合数据类型`Object`,包括数组和函数。 ### 8. 字符串到数字的转换 `parseInt()`和`parseFloat()`函数...

    js获取地址栏中传递的参数(两种方法)

    第一种:字符串拆分法 ...//获取地址栏里(URL)传递的参数 function GetRequest(value) { //url例子:www.bicycle.com?id="123456"&Name="bicycle"; var url = decodeURI(location.search); //?id="123456"&N

    js代码-正则获取URL域名

    这个"js代码-正则获取URL域名"的主题聚焦于如何利用正则表达式从URL字符串中提取出二级域名或者顶级域名部分。下面将详细阐述相关知识点。 首先,我们需要了解URL的基本结构。一个标准的URL通常包含以下几个部分: ...

    webutils:Web开发常用Javascript方法集

    ##1、Url参数获取方法 ###获取url参数 方法: webutils.url.get(name,url); 参数: name:url参数名。 url:(可选),默认是当前url。 ###设置url参数 方法: webutils.url.set(name,value,url); 参数: name:url...

    28个常用JavaScript方法代码块

    在Web应用中,经常需要从URL中获取查询字符串参数。以下是一个使用正则表达式来获取指定名称的查询字符串值的函数: ```javascript function GetQueryStringRegExp(name, url) { var reg = new RegExp("(^|&)" + ...

    javascript常用方法

    JavaScript 支持两种注释方式:单行注释 (`//`) 和多行注释 (`/* */`)。注释用于添加非执行代码的说明性文字,有助于提高代码可读性。 - **单行注释示例**: `// 这是一条单行注释` - **多行注释示例**: ```...

    100个javascript (js)常用语法

    JavaScript(JS)是一种广泛使用的轻量级编程语言,主要用于网页和网络应用的开发。下面将详细解释提供的100个JavaScript常用语法中的部分关键知识点: 1. `document.write("")`:这个方法常用于在HTML文档加载时...

    Javascript学习总结

    JavaScript中的数字是64位浮点数格式,支持以下特殊值和属性: - **Infinity**:表示正无穷大。 - **-Infinity**:表示负无穷大。 - **NaN**:Not a Number,用于表示无法表示的数值。 - **Number.MAX_VALUE**:...

    【JavaScript源代码】纯JS将table表格导出到excel的方法.docx

    以下是如何使用纯JavaScript实现这个功能的详细步骤和方法。 首先,我们来看一下提供的HTML部分,其中有两个按钮,分别用于在IE和Chrome浏览器上导出Excel。`&lt;div&gt;`标签内的两个`&lt;button&gt;`元素绑定了不同的函数,`...

    js获得参数的getParameter使用示例

    在JavaScript编程中,获取URL参数是一项常见的任务,特别是在开发Web应用程序时。`getParameter`函数是用于从URL中提取特定参数值的一个自定义方法。这里我们将深入解析提供的代码示例,理解其工作原理,并讨论如何...

Global site tag (gtag.js) - Google Analytics