您的位置:首页 > Web前端 > JavaScript

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

2016-04-11 11:21 771 查看
转自 http://qiaolevip.iteye.com/blog/1672330
Js代码  


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, " "));  

}  

Js代码  


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]);  

})();  

Js代码  


function getParameterByName(name) {  

    var match = RegExp('[?&]' + name + '=([^&]*)')  

                    .exec(window.location.search);  

    return match && decodeURIComponent(match[1].replace(/\+/g, ' '));  

}  

Js代码  


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 

Js代码  


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  

}  

Js代码  


(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);  

Js代码  


$.urlParam = function(name){  

    var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href);  

    if (!results)  

    {   

        return 0;   

    }  

    return results[1] || 0;  

}  

Js代码  


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 

Js代码  


$.url.param("itemID")  

Js代码  


;(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/ 

Js代码  


var data = URI('?foo=bar&bar=baz&foo=world').query(true);  

data == {  

  "foo": ["bar", "world"],  

  "bar": "baz"  

}  

Js代码  


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;  

}  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: