使用js获取QueryString的方法小结


Posted in Javascript onFebruary 28, 2010

本文原理是使用正则表达式匹配location.search中的字符串。其中三个主要函数为 getQueryString()、getQueryStringByName(name)和getQueryStringByIndex(index)

三个主要方法:

方法 说明
getQueryString 获取QueryString的数组。 例如路径QueryStringDemo.html?id=5&type=1&flag=0 调用后返回["id=5", "type=1", "flag=0"]
getQueryStringByName 根据QueryString参数名称获取值
getQueryStringByIndex 根据QueryString参数索引获取值
//获取QueryString的数组 
function getQueryString(){ 
var result = location.search.match(new RegExp("[\?\&][^\?\&]+=[^\?\&]+","g")); 
for(var i = 0; i < result.length; i++){ 
result[i] = result[i].substring(1); 
} 
return result; 
} 
//根据QueryString参数名称获取值 
function getQueryStringByName(name){ 
var result = location.search.match(new RegExp("[\?\&]" + name+ "=([^\&]+)","i")); 
if(result == null || result.length < 1){ 
return ""; 
} 
return result[1]; 
} 
//根据QueryString参数索引获取值 
function getQueryStringByIndex(index){ 
if(index == null){ 
return ""; 
} 
var queryStringList = getQueryString(); 
if (index >= queryStringList.length){ 
return ""; 
} 
var result = queryStringList[index]; 
var startIndex = result.indexOf("=") + 1; 
result = result.substring(startIndex); 
return result; 
}

测试页面路径:QueryStringDemo.html?id=5&type=1&flag=0
页面加载时:
使用js获取QueryString的方法小结
在QueryString's name后的文本框中输入要获取的QueryString的名称获取相应的值:
使用js获取QueryString的方法小结
在QueryString's index后的文本框中输入要获取的QueryString的索引获取相应的值(索引从0开始):
使用js获取QueryString的方法小结
这样就可以在页面中方便的获取QueryString的值了。最后附上测试页面QueryStringDemo.html的源代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta content="text/html; charset=gb2312" http-equiv="Content-Type" /> 
<title>QueryString获取演示代码 3water.com</title> 
<script type="text/javascript"> 
//获取QueryString的数组 
function getQueryString(){ 
var result = location.search.match(new RegExp("[\?\&][^\?\&]+=[^\?\&]+","g")); 
for(var i = 0; i < result.length; i++){ 
result[i] = result[i].substring(1); 
} 
return result; 
} 
//根据QueryString参数名称获取值 
function getQueryStringByName(name){ 
var result = location.search.match(new RegExp("[\?\&]" + name+ "=([^\&]+)","i")); 
if(result == null || result.length < 1){ 
return ""; 
} 
return result[1]; 
} 
//根据QueryString参数索引获取值 
function getQueryStringByIndex(index){ 
if(index == null){ 
return ""; 
} 
var queryStringList = getQueryString(); 
if (index >= queryStringList.length){ 
return ""; 
} 
var result = queryStringList[index]; 
var startIndex = result.indexOf("=") + 1; 
result = result.substring(startIndex); 
return result; 
} 
//绑定当控件高亮选中时,点击“回车键”时执行的操作 
//control:要绑定事件的控件 
//func:要执行的方法 
function bindEnterEvent(control, func){ 
control.onkeypress = function(){ 
if (event.keyCode == 13){ 
func(); 
} 
} 
} 
//根据输入的QueryString名称获取值 
function getByName(){ 
var name = document.getElementById("txtQueryStringName").value; 
document.getElementById("txtResult").innerHTML = getQueryStringByName(name); 
} 
//根据输入的QueryString的索引获取值 
function getByIndex(){ 
var index = document.getElementById("txtQueryStringIndex").value; 
document.getElementById("txtResult").innerHTML = getQueryStringByIndex(index); 
} 
</script> 
</head> 
<body> 
<div> 
<span>QueryString : </span><span id="queryString"></span> 
</div> 
<div> 
<span>QueryString's name : </span> 
<input id="txtQueryStringName" name="txtQueryStringName" type="text" /> 
<input name="btnGetByName" type="button" value="获取" onclick="getByName()" /> 
</div> 
<div> 
<span>QueryString's index : </span> 
<input id="txtQueryStringIndex" name="txtQueryStringIndex" type="text" /> 
<input name="btnGetByIndex" type="button" value="获取" onclick="getByIndex()" /> 
</div> 
<div> 
<span>结果 :</span><span id="txtResult"></span> 
</div> 
<!--页面加载时执行的操作--> 
<script type="text/javascript"> 
//显示所有QueryString 
document.getElementById("queryString").innerHTML = getQueryString(); 
//为txtQueryStringName绑定回车事件 
bindEnterEvent(txtQueryStringName, getByName); 
//为txtQueryStringIndex绑定回车事件 
bindEnterEvent(txtQueryStringIndex, getByIndex); 
</script> 
</body> 
</html>

pdf版下载地址
Javascript 相关文章推荐
070823更新的一个[消息提示框]组件 兼容ie7
Aug 29 Javascript
ExtJs3.0中Store添加 baseParams 的Bug
Mar 10 Javascript
Javascript生成json的函数代码(可以用php的json_decode解码)
Jun 11 Javascript
jQuery中change事件用法实例
Dec 26 Javascript
html判断当前页面是否在iframe中的实例
Nov 30 Javascript
vue+mockjs模拟数据实现前后端分离开发的实例代码
Aug 08 Javascript
React Native AsyncStorage本地存储工具类
Oct 24 Javascript
详解angular2.x创建项目入门指令
Oct 11 Javascript
vue自定义指令之面板拖拽的实现
Apr 14 Javascript
electron 安装,调试,打包的具体使用
Nov 06 Javascript
OpenLayers3实现对地图的基本操作
Sep 28 Javascript
如何构建一个Vue插件并生成npm包
Oct 26 Javascript
JQuery 将元素显示在屏幕的中央的代码
Feb 27 #Javascript
jquery 最简单易用的表单验证插件
Feb 27 #Javascript
JQuery团队打造的javascript单元测试工具QUnit介绍
Feb 26 #Javascript
getElementsByTagName vs selectNodes效率 及兼容的selectNodes实现
Feb 26 #Javascript
JavaScript 空位补零实现代码
Feb 26 #Javascript
javascript replace()正则替换实现代码
Feb 26 #Javascript
javascript function调用时的参数检测常用办法
Feb 26 #Javascript
You might like
Zend Studio (eclipse)使用速度优化方法
2011/03/23 PHP
php使用cookie显示用户上次访问网站日期的方法
2015/01/26 PHP
PHP使用stream_context_create()模拟POST/GET请求的方法
2016/04/02 PHP
php实现微信和支付宝支付的示例代码
2020/08/11 PHP
javascript 写类方式之一
2009/07/05 Javascript
JS 去前后空格大全(IE9亲测)
2013/07/15 Javascript
让网页跳转到指定位置的jquery代码非书签
2013/09/06 Javascript
纯js简单日历实现代码
2013/10/05 Javascript
简介JavaScript中substring()方法的使用
2015/06/06 Javascript
简介JavaScript中的sub()方法的使用
2015/06/08 Javascript
浅谈jQuery中height与width
2015/07/06 Javascript
浅析jquery unbind()方法移除元素绑定的事件
2016/05/24 Javascript
微信小程序 火车票查询实例讲解
2016/10/17 Javascript
jquery实现下拉框多选方法介绍
2017/01/03 Javascript
jQuery选择器特殊字符与属性空格问题
2017/08/14 jQuery
Vuex 入门教程
2018/01/10 Javascript
angularJs在多个控制器中共享服务数据的方法
2018/09/30 Javascript
[14:21]VICI vs EG (BO3)
2018/06/07 DOTA
[01:05:59]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.22
2019/09/05 DOTA
python实现代码行数统计示例分享
2014/02/10 Python
利用python代码写的12306订票代码
2015/12/20 Python
CentOS中升级Python版本的方法详解
2017/07/10 Python
python操作xlsx文件的包openpyxl实例
2018/05/03 Python
python实现飞机大战游戏(pygame版)
2020/10/26 Python
python中前缀运算符 *和 **的用法示例详解
2020/05/28 Python
python输出结果刷新及进度条的实现操作
2020/07/13 Python
Python中免验证跳转到内容页的实例代码
2020/10/23 Python
图解CSS3制作圆环形进度条的实例教程
2016/05/26 HTML / CSS
HTML5移动端手机网站开发流程
2016/04/25 HTML / CSS
Html5 Canvas实现图片标记、缩放、移动和保存历史状态功能 (附转换公式)
2020/03/18 HTML / CSS
审计局班子四风对照检查材料思想汇报
2014/10/07 职场文书
优秀教师先进事迹材料
2014/12/15 职场文书
小学大队干部竞选稿
2015/11/20 职场文书
python实现三阶魔方还原的示例代码
2021/04/28 Python
实战 快速定位MySQL的慢SQL
2022/03/22 MySQL
SQLyog的下载、安装、破解、配置教程(MySQL可视化工具安装)
2022/09/23 MySQL