获取url参数的方法-程序员宅基地

获取url参数主要有两种方法

第一种是利用字符串的分割方法,将url以“&”和“=”做分割,得到参数数组,然后再利用数组的迭代方法中的filter()方法,筛选并返回我们需要的数据。

function GetQueryString(name) {
    //获取url中“?”后边的部分,并将结果以“&”分割成数组
    var paras = url.split('?')[1].split('&');
    //遍历数组中是否有满足参数条件的数组项
    var result = paras.filter(function(item,index,para){
  	return(item.split('=')[0] == name);
   });
    //如果有满足条件的,则将数组项中的value值返回
    if(result){
	return (result[0].split('=')[1]);
   }
}

第二种方法是利用正则表达式,正则表达式的方法就要比上边的方法看起来要简洁很多。借助这个方法,自己也学习了一些正则表达式的应用。

function GetQueryString(name) {
   var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)","i");
   var r = "aa=22&bb=12".match(reg);
   if (r!=null) return (r[2]); return null;
}
首先,(^|&)这里边的 ^ 表示的是匹配项是以 ^ 后边跟随的字符开头的,如果是(^&),那么匹配项的第一个字符必须是&,这里在中间加了一个 | (或)运算符,表示 & 可以有,也可以没有。

参数name后面就是要获取的值,第一个括号里边有一个中括号,中括号里边的表示要匹配的值。

“*”表示匹配前边中括号里边的内容0次或多次(”+“表示一次或多次,”?“表示0次或1次)。

”^&“的意思是匹配开头不是”&“的内容。

第二个括号里的就是在结尾处匹配”&“或者”$“符号,这里如果没有这两个符号结尾也能够正常返回前边所匹配到的内容。

另外一种正则表达式的方法是:

var arr = url.match(/\w+=\w+/gi);

这样得出的结果是各项参数组成的数组,然后再利用数组的迭代方法去处理就好了。

\w 表示大小写字母,数字,下划线


----------------------------------------------------3月29日更新-----------------------------------------------------------------------

今天看《javascript高级程序设计》中的bom章节,讲到了通过location对象获取字符串参数的方法,其中有decodeURLComponent()方法对查询字符串解码,觉得应该记录一下。

function getQueryStringArgs(){
 	//获取查询字符串,并截掉问号
 	var qs = (location.search.length>0?location.search.substring(1):""),
 	//存储结果的对象
	args = {},
	//分割获取到的字符串,去到每一对值,并放进数组
	items = qs.length?qs.split("&"):[],
	item = null,
	name = null,
	value = null,
	i = 0,
	len = items.length;
 	for(i = 0; i < len; i++){
 		item = items[i].split("=");
 		name = decodeURIComponent(item[0]);
 		value = decodeURIComponent(item[1]);
 		if(name){
 			args[name] = value;
 		}
 	}
 	return args;
 }


<p>
</p>



版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/win0032/article/details/50999821

智能推荐

主动防御多种Deepfake模型,北大王选所在AAAI22上提出跨模型通用对抗水印CMUA-Watermark...-程序员宅基地

文章浏览阅读2k次。关注公众号,发现CV技术之美本文分享AAAI 2022论文『CMUA-Watermark: A Cross-Model Universal Adversarial Watermark fo..._cmua-watermark

单应性(homography)变换的公式推导过程_homography svd 求解-程序员宅基地

文章浏览阅读2.8k次。原文地址:http://www.cnblogs.com/ml-cv/p/5871052.html矩阵的一个重要作用是将空间中的点变换到另一个空间中。这个作用在国内的《线性代数》教学中基本没有介绍。要能形像地理解这一作用,比较直观的方法就是图像变换,图像变换的方法很多,单应性变换是其中一种方法,单应性变换会涉及到单应性矩阵。单应性变换的目标是通过给定的几个点(通常是4对点)来得到_homography svd 求解

Android bugreport 分析方法-程序员宅基地

文章浏览阅读2.3k次。Android bugreport是一种用于收集和诊断Android设备上的问题的工具。当用户在Android设备上遇到问题或错误时,bugreport可以捕获与设备状态、系统日志、应用程序信息和其他相关信息有关的详细数据,以帮助开发者分析和解决问题。_bugreport 分析

Redis的三种集群方式_redis集群三种方式-程序员宅基地

文章浏览阅读2.3w次,点赞19次,收藏169次。Redis的常用的集群方式主要有以下3种1:主从复制2:哨兵(Sentinel)3:Cluster一、主从主从其实就是一般包含一个主,一个或多个从,从节点从主节点复制数据,可以实现读写分离,主节点做写,从节点做读。在配置上基本没什么要改的。这里用Linux做演示。//这里启动3个docker,就让5678当主节点吧 docker run -d -p 5678:6379 redis docker run -d -p 5679:6379 redis docker run -d _redis集群三种方式

C语言基础语法scanf_4 输入字符串&混合输入_scanf混合类型输入-程序员宅基地

文章浏览阅读130次。C语言基础语法scanf_4 输入字符串&混合输入_scanf混合类型输入

小伙子用C++代码制作的OpenGL 3D动画茶壶!成功拿下offer_c++ 3d动画-程序员宅基地

文章浏览阅读1.4k次。VC++ 效果,是静态的3D效果,并不能旋转3D图形,因此来说是比较基础级的OpenGL三维生成函数,看上去像是使用了贴图技术,画感不是很细腻,仅供学习参考哦。项目源代码:部分代码:程序运行截图:如果您想学C/C++编程,这里有一节三天的免费的VIP试听课和一份学前资料,加QQ群:1037025565领取。..._c++ 3d动画

随便推点

php读取word\pdf等文档的内容,并将其保存到网页中_php 读取word内容并保存入库-程序员宅基地

文章浏览阅读7.1k次。// 建立一个指向新COM组件的索引 $word = new COM(”word.application”) or die(”无法打开 MS Word”); // 显示目前正在使用的Word的版本号 //echo “Loading Word, v. {$word->Version}”; // 把它的可见性设置为0(假),如果要使它在最前端打开,使用1(真) // to open_php 读取word内容并保存入库

HTML&CSS仿京东详情页静态页面制作总结_商品详情页怎么制作html-程序员宅基地

文章浏览阅读4.7k次,点赞3次,收藏42次。仿京东详情页面制作_商品详情页怎么制作html

NVME之Device Self-test Operations_self test option-程序员宅基地

文章浏览阅读5.6k次。NVME协议中关于Device self test 介绍_self test option

intell idea怎么恢复默认设置_instellij idea怎么重置-程序员宅基地

文章浏览阅读2.4w次,点赞9次,收藏5次。intell idea怎么恢复默认设置今天在使用idea的时候修改了快捷键,结果不知道怎么回事其他很多快捷键也都变了,于是尝试恢复默认。发现只要删除以下文件夹下的文件就可以了:C:\Users\Administrator.IntelliJIdea2018.3\config\keymaps..._instellij idea怎么重置

解决“图片因为CSS样式缩放导致变糊问题”_css背景图片放大模糊-程序员宅基地

文章浏览阅读1w次,点赞6次,收藏13次。对于图片的放大缩小,我们都会自然而然的认为:图片放大,会变得模糊,图片变小会变得较为清晰。放大,会把瑕疵更明显的暴露出来;缩小,可以让瑕疵难以发觉。这是生活中的自然现象。但是,这个现象放到网页上的图片就“变了味”。_css背景图片放大模糊

Jedis操作Redis技巧详解_jedis 操作redis bitmap获取指定下标区间-程序员宅基地

文章浏览阅读4.9k次,点赞5次,收藏6次。对于Redis的部署模式有两种,单机模式 和 集群模式。因此,本文的介绍也从这两个方面进行介绍。众所周知,Jedis是最著名的Redis java客户端操作类库,几乎支持所有的Redis操作。本文就是要介绍Jedis API如何操作两种模式下的Redis数据库,以及相关的操作技巧。 本文介绍的全都是基于maven的管理方式建立的Java项目。首先,为了Java程序中使用Jedis API,_jedis 操作redis bitmap获取指定下标区间