为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

斯蒂芬大帝 2018-10-09 13:49:20
在网上找的这两种处理方式,但不理解函数的逻辑和正则部分,另这两种方法的不同和哪个在项目中使用性能会更高呢?希望有懂得大神能指点迷津!谢谢?!!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
查看完整描述

1 回答

?
德玛西亚99

TA贡献1770条经验 获得超3个赞

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


查看完整回答
反对 回复 2018-11-04
  • 1 回答
  • 0 关注
  • 553 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号