js处理url参数

var UrlArgent = {
            Parsed: false, //是否已解析
            Cache: {}, //缓存值
            ParseArg: function () {
                // 解析地址栏的参数值
                UrlArgent.Parsed = true;
                var url = location.search;
                if (-1 == url.indexOf(‘?‘)) return;

                var args = url.substr(1).split("&");
                for (var i = 0; i < args.length; i++) {
                    var tmp = args[i];
                    var pos = tmp.indexOf(‘=‘);
                    if (-1 == pos) continue;
                    UrlArgent.Cache[tmp.substr(0, pos)] = tmp.substr(pos + 1);
                }
            },
            GetItem: function (queryStringName, defaultVal) {
                // 获取单个项目的值  queryStringName大小写敏感,及区分大小写
                if (UrlArgent.Parsed == false) UrlArgent.ParseArg();

                return UrlArgent.Cache[queryStringName] || (typeof (defaultVal) == ‘undefined‘ ? ‘‘ : defaultVal.toString());
            },
            GetItemIgnore: function (queryStringName, defaultVal) {
                // 获取单个项目的值  queryStringName忽略大小写
                if (UrlArgent.Parsed == false) UrlArgent.ParseArg();

                for (var k in UrlArgent.Cache) {
                    if (UrlArgent.Cache.hasOwnProperty(k) == false) continue; //只取私有属性
                    if (k.toLowerCase() == queryStringName.toLowerCase()) return UrlArgent.Cache[k];
                }

                return (typeof (defaultVal) == ‘undefined‘ ? ‘‘ : defaultVal.toString());
            },
            GetUrl: function (newValue, ignore) {
                // 获取url参数 newValue增加或修改的值  ignore关键字是否忽略大小写,true忽略大小写其他值大小写敏感
                if (typeof (newValue) != ‘object‘) return location.search.substr(1); //原样返回

                if (UrlArgent.Parsed == false) UrlArgent.ParseArg();

                var url = [];
                for (var k in UrlArgent.Cache) {
                    if (UrlArgent.Cache.hasOwnProperty(k) == false) continue; //只取私有属性

                    var val = UrlArgent.Cache[k]; //默认是原值
                    for (var n in newValue) {
                        if (newValue.hasOwnProperty(n) == false) continue;

                        if ((k == n) || (ignore == true && k.toLowerCase() == n.toLowerCase())) { //需要替换原来的值
                            val = newValue[n].toString(); //赋新值
                            newValue[n] = null; //清除设置了值的项
                        }
                    }
                    url.push(k + ‘=‘ + val);
                }

                for (var n in newValue) { //新增加的键值
                    if (newValue.hasOwnProperty(n) == false) continue;
                    if (newValue[n] == null) continue;
                    url.push(n + ‘=‘ + newValue[n].toString());
                }

                return url.join(‘&‘);
            }

        };

使用:

        var a = UrlArgent.GetItem(‘x‘);
        var x = UrlArgent.GetItem(‘x‘, 0);
        var y = UrlArgent.GetItemIgnore(‘X‘);
        var s = UrlArgent.GetUrl();
        var w = UrlArgent.GetUrl({ "x": "vv", "ismobilE": "vs" });
        var z = UrlArgent.GetUrl({ "X": "vv", "ismobilE": "vs" }, true);
时间: 2024-10-05 04:09:19

js处理url参数的相关文章

JS获取url参数及url编码、解码

完整的URL由这几个部分构成:scheme://host:port/path?query#fragment ,各部分的取法如下: window.location.href:获取完整url的方法:,即scheme://host:port/path?query#fragment window.location.protocol:获取rul协议scheme window.location.host:获取host window.location.port:获取端口号 window.location.pa

JS 操作Url参数

项目中需要JS操作路径参数,小弟不才,不跳会,因此查了一下,总结一下使用方法 <script type="text/javascript"> //运用 window.onload = function () { var Request = new Object(); Request = GetRequest(); var urlPara = Request['isChecked']; if (urlPara != null && urlPara != &qu

js获取url参数

   //获取url参数    function getRequest() {         var url = location.search; //获取url中"?"符后的字串 var theRequest = new Object();         if (url.indexOf("?") != -1) { var str = url.substr(1); strs = str.split("&"); for(var i = 

jquery或js 获取url参数

<script type="text/javascript"> function getUrlParam(name) { var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象 var r = window.location.search.substr(1).match(reg); //匹配目标参数 if (r!=nu

js 获取url参数的值

//获取url参数函数function GetQueryString(name){    var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); // match()方法可在 字符串内检索指定的值,或找到一个或多个正则表达式的匹配    var r = window.location.search.substr(1).match(reg);     if(r!=null){         

程序ajax请求公共组件app-jquery-http.js中url参数部分的项目应用

结合微信登录以及微信支付的案例:= =||| (案例比较奇葩复杂) 简述项目流程: 1.获取用于公众号支付的openid(公众平台):在微信内置浏览器中打开网页链接,刚进入页面就通过微信公众平台获取该微信用户的code,拿到code传给后台,换取用户的openid. 2.微信登录(开放平台):微信登录通过微信开放平台,由于第一步公众平台拿到的code会混淆开放平台的code,导致用户使用微信登录失败,就需要使用该插件将url参数重置. 3.微信支付(公众平台):像后台传输步骤一获取的openid

Jquery、JS获取URL参数的方法

本篇文章主要是对javascript/jquery获取地址栏url参数的方法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 使用jquery获取url以及使用jquery获取url参数是我们经常要用到的操作 1.jquery获取url很简单,代码如下 代码如下: window.location.href; 其实只是用到了javascript的基础的window对象,并没有用jquery的知识 2.jquery获取url参数比较复杂,要用到正则表达式,所以学好javascript正则式多

js获取url参数方法

通过下面函数可以返回url参数集合,以对象的形式返回. function GetRequest() { var url = location.search; //获取url中"?"符后的字串 var theRequest = new Object(); if (url.indexOf("?") != -1) { var str = url.substr(1); strs = str.split("&"); for(var i = 0; i

js分解url参数(正则表达式,split比较)(面向对象-极简主义法应用)

一:正则表达式法 <script type="text/javascript"> function getQueryString(url) { if(url) { url=url.substr(url.indexOf("?")+1); //字符串截取,比我之前的split()方法效率高 } var result = {}, //创建一个对象,用于存name,和value queryString =url || location.search.substr