使用Javascript快速获取URL参数

Posted Moustache

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Javascript快速获取URL参数相关的知识,希望对你有一定的参考价值。

 

首先:原文在这   Quick Tip: Get URL Parameters with javascript
 function getAllUrlParams(url) {

            var queryString = url ? url.split(‘?‘)[1] : window.location.search.slice(1);

            var obj = {};

            if (queryString) {

                queryString = queryString.split(‘#‘)[0];

                var arr = queryString.split(‘&‘);

                for (var i = 0; i < arr.length; i++) {

                    var a = arr[i].split(‘=‘);

                    var paramNum = undefined;
                    var paramName = a[0].replace(/\[\d*\]/, function(v) {
                        paramNum = v.slice(1, -1);
                        return ‘‘;
                    });

                    var paramValue = typeof(a[1]) === ‘undefined‘ ? "" : a[1];

                    paramName = paramName.toLowerCase();
                    paramValue = paramValue.toLowerCase();
                    if (obj[paramName]) {
                        if (typeof obj[paramName] === ‘string‘) {
                            obj[paramName] = [obj[paramName]];
                        }
                        if (typeof paramNum === ‘undefined‘) {
                            obj[paramName].push(paramValue);
                        } else {
                            obj[paramName][paramNum] = paramValue;
                        }
                    } else {
                        obj[paramName] = paramValue;
                    }
                }
            }
            return obj;
        }

  

在这里小小的改动了一下
      // set parameter value (use ‘true‘ if empty)
      var paramValue = typeof(a[1])===‘undefined‘ ? true : a[1];

      // (optional) keep case consistent
      paramName = paramName.toLowerCase();
      paramValue = paramValue.toLowerCase();

     Optionally, you can set all parameter names and values to lowercase. That way, you can avoid situations where someone sends traffic to a url with example=TRUE instead of example=true and your script breaks (I’ve seen this happen). However, if your query string needs to be case sensitive, feel free to omit this part

paramName = paramName.toLowerCase();
paramValue = paramValue.toLowerCase();

  在原文中,如果参数对象值为空,就返回个布尔值。但显然 paramValue.toLowerCase(),不允许你这样做。

  整篇感觉还是蛮不错的~~

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

      以上

 

以上是关于使用Javascript快速获取URL参数的主要内容,如果未能解决你的问题,请参考以下文章

使用JavaScript从当前URL的QueryString中获取指定的参数

有没有开源方法能直接获取url的参数值

js获取url的参数

Javascript 获取指定的 URL 参数值

译文:18个实用的JavaScript代码片段,助你快速处理日常编程任务

JS获取URL的参数