使用jquery获取url及url参数的方法

使用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>
复制代码
复制代码

 

转载请注明出处。

原文地址:https://www.cnblogs.com/linjiaxin/p/6004477.html

一辈子很短,努力的做好两件事就好;第一件事是热爱生活,好好的去爱身边的人;第二件事是努力学习,在工作中取得不一样的成绩,实现自己的价值,而不是仅仅为了赚钱;

转载于:https://www.cnblogs.com/best-coder/p/11550409.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/447670.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js 遍历对象的几种方法

第一种&#xff1a; for......in const obj {id:1,name:zhangsan,age:18}for(let key in obj){console.log(key --- obj[key])} 输出结果&#xff1a; 第二种&#xff1a; 1&#xff09;、Object.keys&#xff08;obj&#xff09; 2&#xff09;、Object.values&#xff08…

你辛苦来人间一趟,不是来作任务的,你应该好好享受阳光、雨露和爱 ...

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 摘记以下格言&#xff0c;愿已今生不忘&#xff1a;------------------------------------------------------- 1) 忽视就是一种认输。 …

人生五不为

人生如若以百年算&#xff0c;除去童年和老年&#xff0c;一般也有60多年的活跃期。在这活跃期中&#xff0c;人们要求学择业、要成家育子、要做许许多多的事情&#xff0c;同时也被人世间的不少因素所困扰。这些因素都有哪些呢&#xff1f;不外乎是&#xff1a;名、利、钱、情…

解决:Intellij idea 启动项目报错 error:java: 无效的源发行版: 8

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1.我的情况&#xff1a; 我自已电脑环境变量配置的 JDK8 &#xff0c;后来公司项目沿用 JDK7&#xff0c;我就换回了 7 。 今天打算运行…

补肾分男女,养肾如养命

肾虚是一个笼统的名词&#xff0c;主要区分为肾阳虚和肾阴虚&#xff0c;这两个症形表现不一样。 肾阳虚的病人畏寒怕冷浮肿&#xff0c;腰腿冷痛、尿频、慢性腹泻伴有性功能失常的表现&#xff0c;阳萎、遗精、早泄。 肾阴虚的病人主要是面容憔悴、腰背酸痛、下肢无力&#…

vscode 编辑器快捷键

代码段同时缩进&#xff1a; 选中代码段&#xff0c;按下tab键可以同时时代码缩进。 先按下shifttab键可以取消缩进&#xff0c;向前移动。 转载于:https://www.cnblogs.com/150536FBB/p/11555744.html

简述 maven 命令 package、install、deploy 的区别

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 原文有图片说明命令运行过程&#xff0c;我只记录最终结论&#xff1a; 区别即&#xff1a; package &#xff1a;打包&#xff08;到项…

教给孩子的10句“保命金言”(图)

1、平安成长比成功更重要。 教育孩子人人有若干权利&#xff0c;如呼吸权、生命权、隐私权&#xff0c;这些权利任何人不能剥夺。告诉孩子&#xff0c;任何人也无权剥夺他的安全权&#xff0c;安全重于一切。 2、背心裤衩覆盖的地方不许别人摸。 孩子应当知道身体属于自己&a…

FreeSql 访问 Oracle 解决大小写问题

方法一 new FreeSqlBuilder() .UseSyncStructureToUpper(true) .Build() 方法二 全局转换实体属性名方法&#xff0c;这种只能转属性。 其实是通过Aop方法完成的功能&#xff0c;Aop可以对属性名和类名进行全局拦截处理大小写。 new FreeSql.FreeSqlBuilder().UseEntityPropert…

linux 内核时间计量方法

定时器中断由系统定时硬件以规律地间隔产生; 这个间隔在启动时由内核根据 HZ 值来编 程, HZ 是一个体系依赖的值, 在 <linux/param.h>中定义或者它所包含的一个子平台文 件中. 在发布的内核源码中的缺省值在真实硬件上从 50 到 1200 嘀哒每秒, 在软件模拟 器中往下到 24.…

Linux 关闭、开启、查看 防火墙命令

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 在外部访问CentOS中部署应用时&#xff0c;需要关闭防火墙。 关闭防火墙命令&#xff1a;systemctl stop firewalld.service 开启防火…

男人八大折寿恶习

男人看似比女人强壮&#xff0c;可往往更容易被疾病击倒。世界卫生组织一项调查显示&#xff0c;男人的心脏、肠胃天生就比女人脆弱&#xff0c;心脑血管病和肠胃病的发病率是女人的好几倍。另外&#xff0c;由于在社会中男人承担着更多的压力&#xff0c;心理健康也备受挑战。…

解决: Incorrect username or password, or no permission ( Docker 方式运行 Nexus3 登陆密码不为 admin123 、重置登陆密码)

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. 登陆 输入 admin admin123 直接报错&#xff1a; 查日志 发现的确登陆不成功&#xff1a; 2. 后来注意到在登陆时有提示信息 &#…

已婚男人的心理五大变化

很多女生都会说&#xff1a;他结婚经常会给我惊喜&#xff0c;婚后就完全变了。人们也常说&#xff1a;男人婚前婚后总是两个样。那到底婚后的男人心理到底出现了哪些变化&#xff0c;造成了这些行为上的变化呢&#xff1f; 一、婚后男人变得很懒 这仿佛是所有已婚男人的变化…

Docker 方式安装、运行 Nexus3 、重置默认密码、推送 jar 包到私服

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. 找镜像&#xff1a; docker search nexus2. 拉取镜像&#xff1a;&#xff08;我已经拉取过&#xff0c;不选择版本时&#xff0c;默认…

每天2分钟,10个简单方法改变你的生活

千里之行始于足下。——老子 距离没什么可怕的&#xff0c;但迈开第一步却是困难的。——玛丽&#xff0e;狄&#xff0e;代芳夫人 想要生活有一个积极的改变&#xff0c;并不意味着要做一个巨大的飞跃。而且我相信&#xff0c;在众多因素中&#xff0c;信念也可使人们远离快速…

解决:Docker 启动的容器内部时间比服务器时间晚 8 小时,容器内部时间与宿主机时间不一致

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1.docker 方式启动容器 nexus3 &#xff0c;运行正常&#xff0c;但查日志时发现容器时间比宿主机时间晚8小时&#xff0c;内外时间不一…

从技术岗位走向管理岗位:机会是留给有准备的人

摘要&#xff1a;机会总是留给有准备的人。在被从技术岗位提拔到管理岗位之前&#xff0c;技术人员就要具备管理岗位所需要的基本素质和能力&#xff0c;将功课做在前面&#xff0c;提拔只是最后一步。作者结合自己十年的工作经验谈了自己的看法。 机会总是留给有准备的人。在…

springCloud - 第2篇 - 服务的发现 seeParam

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 一、创建 Client 1. file - new - module 2. spring Initializr - module SDK 选择自己的 JDK &#xff0c;其余的可以不用填写&…

让你成为有钱一族的黄金理财法则?

想要获得财富的每个人来说&#xff0c;愿意进行创富探索的意愿就是重要的财富&#xff0c;也许你不知道该怎么做&#xff0c;很多事确实有待尝试。而愿意去探索&#xff0c;失败&#xff0c;再探索是成功的核心所在&#xff0c;只要你有了创富的意愿&#xff0c;加以规划&#…