使用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…

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

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

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

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

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

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

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

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

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

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

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

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

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

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

解决: Failed to execute ... maven-deploy-plugin... Return code is: 401, ReasonPhrase: Unauthorized.

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. 执行 mvn clean deploy , 想把本地代码 打包并推送到私服 &#xff0c;报错&#xff1a; [ERROR] Failed to execute goal org.a…

高速行车12条技巧,每一条都关乎你的生命

高速行车12条技巧&#xff0c;每一条都关乎你宝贵的生命。 1、长途旅行前&#xff0c;全面检查整车&#xff0c;防止漏油&#xff0c;轮胎检查是重点&#xff01; 在中国很多高速事故是可以避免的&#xff0c;绝大部分司机缺少本应该在驾校学到的必备知识&#xff0c;这导致很多…

文件逆序输出及根据行号索取该行内容

一. 起因 年初&#xff0c;一位同学提取了如何实现倒叙输出文件&#xff0c;根据行号索引该行内容&#xff0c;我思考了一下&#xff0c;得出以下二种方案&#xff01; 二. 方案 1&#xff09;方案1&#xff1a;&#xff08;此方案局限性较大&#xff0c;并且耗内存&#xff…

内存映射处理大文件并实现逆序输出

上一篇介绍了一种常见的文件处理方法(可优化为&#xff1a;分次读取文件&#xff0c;但要满足根据行号能快速索引该行内容时会遇到麻烦),所以此片我将介绍另一种更高效&#xff0c;实用&#xff0c;并对本进程的内存空间地址消耗小的方法&#xff01; 一. 预备知识 1&#xff…

解决: tar: Removing leading `/‘ from member names

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. 我的情况 。 使用绝对路径 执行 tar 命令&#xff1a; tar -zcvf clientOne.tar /root/jiangyu/projects/springCloud/clientOne/s…

ObjectArx创建指定块

ObjectArx创建自定义块 一. 目的仿照AutoCad的Block命令&#xff0c;实现简版创建块功能!二. 开发环境Win7操作系统&#xff0c;AutoCad2012&#xff0c; VS2008, ObjectArx_SDK_2012三. 相关函数简介1) int acedSSGet (const ACHAR *str, const void *pt1,const void *pt2…

解决:Dockerfile 中执行 tar 命令始终报错:tar: /xx/xx: Cannot stat: No such file or directory tar: Exiting with

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. docker 执行 build &#xff0c; dockerfile 中有一行命令&#xff1a; RUN tar -zcvP -f clientOne.tar /root/jiangyu/projects/…

ObjectArx创建自定义实体

ObjectArx创建自定义实体 一。目的在ObjectArx中已经有了许多实体&#xff0c;如AcDbLine,AcDbCircle,AcDbArc等&#xff0c;但在用户使用Cad时&#xff0c;会有一些对他们来讲常用的“实体“&#xff0c;如一扇门&#xff0c;如果我们能提供一个“门实体“&#xff0c;让用户能…

开车人千金难买的知识!(组图)

开车的人千金难买的知识: 前言&#xff1a; 一、 发动机是怎样被您自己开坏的 二、 变速箱是怎样被您自己开坏的 三、 排水口&#xff08;很重要您肯定不知道的&#xff09; 四、 离合 五、 水箱 六、 方向助力 七、 空调 八、底盘 九、爱车是如何被自己撞坏的&#x…

如何在 IDEA 启动多个 Spring Boot 工程实例

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 一个工程启动多个实例&#xff0c;分别占用不同的端口。 step 1 在IDEA上点击Application右边的下三角 ,弹出选项后&#xff0c;点击Ed…

重启 docker 服务、Docker 重启

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. 我的情况 &#xff1a;重启阿里云 ECS 服务器后&#xff0c;一切服务都停止了。 重启 XXX 服务通用命令&#xff1a;service xxx re…

linux 查看 CPU 使用率

1&#xff1a;top 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 top -bn 1 -i -c top命令可以看到总体的系统运行状态和cpu使用效率 %us: 表示用户空间程序的cpu使用效率 %sy:表示…