通过Javascript得到URL中的参数(query string)

查看:102
本文介绍了通过Javascript得到URL中的参数(query string)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

在网上找的这两种处理方式,但不理解函数的逻辑和正则部分,另这两种方法的不同和哪个在项目中使用性能会更高呢?希望有懂得大神能指点迷津!谢谢?!!
http://www.cnblogs.com/season...
方法一:

function getParameterByName(name) {
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
    results = regex.exec(location.search);
    return results == null ? "": decodeURIComponent(results[1]);
}
console.log(getParameterByName("param")) //yes

方法二:

var urlParams; 
(window.onpopstate = function() {
    var match,
    pl = /\+/g,
    search = /([^&=]+)=?([^&]*)/g,
    decode = function(s) {
        return decodeURIComponent(s.replace(pl, " "));
    },
    query = window.location.search.substring(1);
    urlParams = {};
    while (match = search.exec(query))
       urlParams[decode(match[1])] = decode(match[2]);
})();

  //urlParams的结果
    urlParams = {
      param: "yes",
      article: "1"
    }

    console.log(urlParams["param"]);  // -> "yes"
    console.log("article" in urlParams);  // -> true

解决方案

就你提供的两种方法 。 个人观点, 就大工程的 话, 我会选择方法一, 小工程我会选择方法二, 方法一进行封装,我可以丢到jqurey 中, 但是方法二 则不行,绑定了两个全局对象,灵活性太差。 但是 方法一 有个弊端或者说是优点, 既 我需要什么我就传什么, 不需要丢给我 多余的 参数,这样的效果在 url 参数非常多的时候 效果会非常明显 ,灵活性更佳 ,但是方法二 是可以获得所有参数和所有值。

这篇关于通过Javascript得到URL中的参数(query string)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆