jquery获取url参数及url加参数的方法


Posted in Javascript onOctober 26, 2015

使用jquery获取url以及使用jquery获取url参数是我们经常要用到的操作,下面通过文字说明加代码分析的形式给大家解析,具体详情请看下文。

1、jquery获取url很简单,代码如下:

window.location.href;

其实只是用到了javascript的基础的window对象,并没有用jquery的知识。

2、jquery获取url参数比较复杂,要用到正则表达式,所以学好javascript正则式多么重要的事情

首先看看单纯的通过javascript是如何来获取url中的某个参数:

//获取url中的参数
  function getUrlParam(name) {
   var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
   var r = window.location.search.substr(1).match(reg); //匹配目标参数
   if (r != null) return unescape(r[2]); return null; //返回参数值
  }

通过这个函数传递url中的参数名就可以获取到参数的值,比如url为

http://localhost:33064/WebForm2.aspx?reurl=WebForm1.aspx

我们要获取reurl的值,可以这样写:

var xx = getUrlParam('reurl');

明白了javascript获取url参数的方法,我们可以通过这个方法为jquery扩展一个方法来通过jquery获取url参数,下面的代码为jquery扩展了一个getUrlParam()方法

(function ($) {
    $.getUrlParam = function (name) {
     var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
     var r = window.location.search.substr(1).match(reg);
     if (r != null) return unescape(r[2]); return null;
    }
   })(jQuery);

为jquery扩展了这个方法了之后我们就可以通过如下方法来获取某个参数的值了:

  

 var xx = $.getUrlParam('reurl');

完整代码:

<script src="js/jquery-1.7.2.min.js" type="text/javascript"></script>
 <script type="text/javascript">
  $(function () {
   //方法二:
   (function ($) {
    $.getUrlParam = function (name) {
     var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
     var r = window.location.search.substr(1).match(reg);
     if (r != null) return unescape(r[2]); return null;
    }
   })(jQuery);
   //方法二:
   var xx = $.getUrlParam('reurl');
   //方法一:
   // var xx = getUrlParam('reurl');

   alert(xx);
  });
  //方法一:
  //获取url中的参数
  function getUrlParam(name) {
   var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
   var r = window.location.search.substr(1).match(reg); //匹配目标参数
   if (r != null) return unescape(r[2]); return null; //返回参数值
  }
 </script>

2014-4-23 修改

今天在用上面的方法获取url中的参数时,url中传递的中文参数在解析的时候无论怎么测试,获取的都是乱码。经过一番调试后发现,我再传递参数时,对汉字编码使用的是 encodeURI ,而上面的方法在解析参数编码时使用的是unescape ,修改为 decodeURI 就可以了。

附: W3School中的介绍:

JavaScript unescape() 函数

unescape() 函数可对通过 escape() 编码的字符串进行解码。

参数 描述
string 必需。要解码或反转义的字符串。

说明

该函数的工作原理是这样的:通过找到形式为 %xx 和 %uxxxx 的字符序列(x 表示十六进制的数字),用 Unicode 字符 \u00xx 和 \uxxxx 替换这样的字符序列进行解码。

提示和注释

注释:ECMAScript v3 已从标准中删除了 unescape() 函数,并反对使用它,因此应该用 decodeURI() 和 decodeURIComponent() 取而代之。

综上: javascript对参数编码解码方法要一致:

escape()   unescape()

encodeURI()   decodeURI()

encodeURIComponent()    decodeURIComponent() 

网上找的另一种javascript获取url中参数的方法:

<script language="JavaScript" type="text/javascript"> 
function GetUrlParms() 
{
 var args=new Object(); 
 var query=location.search.substring(1);//获取查询串 
 var pairs=query.split("&");//在逗号处断开 
 for(var i=0;i<pairs.length;i++) 
 { 
  var pos=pairs[i].indexOf('=');//查找name=value 
   if(pos==-1) continue;//如果没有找到就跳过 
   var argname=pairs[i].substring(0,pos);//提取name 
   var value=pairs[i].substring(pos+1);//提取value 
   args[argname]=unescape(value);//存为属性 
 }
 return args;
}
var args = new Object();
args = GetUrlParms();
//如果要查找参数key:
if(args["id"]!=undefined)
{
//如果要查找参数key:
var value1 = args["id"] ;
alert(value1);
}</script>

 jquery 取url参数和在url加参数

(function ($) {
 $.extend({
  Request: function (m) {
   var sValue = location.search.match(new RegExp("[\?\&]" + m + "=([^\&]*)(\&?)", "i"));
   return sValue ? sValue[1] : sValue;
  },
  UrlUpdateParams: function (url, name, value) {
   var r = url;
   if (r != null && r != 'undefined' && r != "") {
    value = encodeURIComponent(value);
    var reg = new RegExp("(^|)" + name + "=([^&]*)(|$)");
    var tmp = name + "=" + value;
    if (url.match(reg) != null) {
     r = url.replace(eval(reg), tmp);
    }
    else {
     if (url.match("[\?]")) {
      r = url + "&" + tmp;
     } else {
      r = url + "?" + tmp;
     }
    }
   }
   return r;
  }

 });
})(jQuery);

使用方法

dev.zhang.com/IOF.Signup/index_uscn_chs.html?act=1

1、取值使用

$.Request("act") = 1

2、url加参数

$.UrlUpdateParams(window.location.href, "mid", 11111),

结果window.location.href?mid=11111

Javascript 相关文章推荐
javascript脚本编程解决考试分数统计问题
Oct 18 Javascript
Cookie 注入是怎样产生的
Apr 08 Javascript
加速IE的Javascript document输出的方法
Dec 02 Javascript
页面加载完毕后滚动条自动滚动一定位置
Feb 20 Javascript
HTML5使用DeviceOrientation实现摇一摇功能
Jun 05 Javascript
JavaScript中的闭包
Feb 24 Javascript
jQuery插件zTree实现的基本树与节点获取操作示例
Mar 08 Javascript
详解解决Vue相同路由参数不同不会刷新的问题
Oct 12 Javascript
webstorm+vue初始化项目的方法
Oct 18 Javascript
Javascript中弹窗confirm与prompt的区别
Oct 26 Javascript
js实现坦克大战游戏
Feb 24 Javascript
JavaScript编码小技巧分享
Sep 17 Javascript
JavaScritp添加url参数并将参数加入到url中及更改url参数的方法
Oct 26 #Javascript
angular.bind使用心得
Oct 26 #Javascript
详解JavaScript编程中正则表达式的使用
Oct 25 #Javascript
实例解析JS布尔对象的toString()方法和valueOf()方法
Oct 25 #Javascript
JavaScript编程中布尔对象的基本使用
Oct 25 #Javascript
举例讲解JavaScript中将数组元素转换为字符串的方法
Oct 25 #Javascript
javascript学习笔记整理(概述、变量、数据类型简介)
Oct 25 #Javascript
You might like
php获得url参数中具有&amp;的值的方法
2014/03/05 PHP
PHP实现微信公众平台音乐点播
2014/03/20 PHP
CodeIgniter配置之autoload.php自动加载用法分析
2016/01/20 PHP
Yii2框架数据库简单的增删改查语法小结
2016/08/31 PHP
php 与 nginx 的处理方式及nginx与php-fpm通信的两种方式
2018/09/28 PHP
javascript 读取xml,写入xml 实现代码
2009/07/10 Javascript
JQUBar 基于JQUERY的柱状图插件
2010/11/23 Javascript
鼠标移入移出事件改变图片的分辨率的两种方法
2013/12/17 Javascript
关闭ie窗口清除Session的解决方法
2014/01/10 Javascript
javascript学习笔记(六)数据类型和JSON格式
2014/10/08 Javascript
JavaScript使用indexOf获得子字符串在字符串中位置的方法
2015/04/06 Javascript
提高JavaScript执行效率的23个实用技巧
2017/03/01 Javascript
Vue中使用vue-i18插件实现多语言切换功能
2018/04/25 Javascript
详解Vue 动态组件与全局事件绑定总结
2018/11/11 Javascript
浅谈JS和jQuery的区别
2019/03/27 jQuery
js简单遍历获取对象中的属性值的方法示例
2019/06/19 Javascript
vue(2.x,3.0)配置跨域代理
2019/11/27 Javascript
python禁用键鼠与提权代码实例
2019/08/16 Python
Html5如何唤起百度地图App的方法
2019/01/27 HTML / CSS
让IE支持HTML5的方法
2012/12/11 HTML / CSS
HTML5 Canvas阴影使用方法实例演示
2013/08/02 HTML / CSS
html5实现的便签特效(实战分享)
2013/11/29 HTML / CSS
倩碧美国官网:Clinique美国
2016/07/20 全球购物
SKECHERS斯凯奇中国官网:来自美国的运动休闲品牌
2018/11/14 全球购物
俄罗斯有趣和原创礼物网上商店:MagicMag
2019/08/01 全球购物
软件配置管理有什么好处
2015/04/15 面试题
财务会计专业毕业生自荐信
2013/10/02 职场文书
工程概预算专业毕业生求职信
2013/10/04 职场文书
企业内部培训方案
2014/02/04 职场文书
大学生2014全国两会学习心得体会
2014/03/10 职场文书
校本教研活动总结
2014/07/01 职场文书
服务明星事迹材料
2014/12/29 职场文书
给校长的建议书作文500字
2015/09/14 职场文书
2016应届毕业生自荐信范文
2016/01/28 职场文书
如何利用STAR法则制作留学文书?
2019/08/26 职场文书
酒店工程部的岗位职责汇总大全
2019/10/23 职场文书