使用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 相关文章推荐
关于Aptana Studio生成自动备份文件的解决办法
Dec 23 Javascript
从盛大通行证上摘下来的身份证验证js代码
Jan 11 Javascript
JS循环遍历JSON数据的方法
Jul 08 Javascript
JavaScript驾驭网页-获取网页元素
Mar 24 Javascript
非常棒的jQuery图片轮播效果
Apr 17 Javascript
AngularJS基础 ng-switch 指令简单示例
Aug 03 Javascript
AngularJS中关于ng-class指令的几种实现方式详解
Sep 17 Javascript
bootstrap IE8 兼容性处理
Mar 22 Javascript
JS返回顶部实例代码
Aug 09 Javascript
js实现数组内数据的上移和下移的实例
Nov 14 Javascript
浅谈JsonObject中的key-value数据解析排序问题
Dec 06 Javascript
微信小程序实现卡片层叠滑动效果
Jun 21 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
打造计数器DIY三步曲(中)
2006/10/09 PHP
Apache服务器无法使用的解决方法
2013/05/08 PHP
Laravel 5框架学习之数据库迁移(Migrations)
2015/04/08 PHP
PHP的邮件群发系统phplist配置方法详细总结
2016/03/30 PHP
PHP实现的迪科斯彻(Dijkstra)最短路径算法实例
2017/09/16 PHP
php实现支付宝当面付(扫码支付)功能
2018/05/30 PHP
ThinkPHP 5 AJAX跨域请求头设置实现过程解析
2020/10/28 PHP
彻底搞懂JS无缝滚动代码
2007/01/03 Javascript
任意位置显示html菜单
2007/02/01 Javascript
[原创]站长必须要知道的javascript广告代码
2007/05/30 Javascript
纯js网页画板(Graphics)类简介及实现代码
2012/12/24 Javascript
JQuery实现用户名无刷新验证的小例子
2013/03/22 Javascript
JSON辅助格式化处理方法
2013/03/26 Javascript
枚举的实现求得1-1000所有出现1的数字并计算出现1的个数
2013/09/10 Javascript
jquery五角星评分插件示例分享
2014/02/21 Javascript
关于编写性能高效的javascript事件的技术
2014/11/28 Javascript
javascript实现动态标签云
2015/10/16 Javascript
JavaScript编程学习技巧汇总
2016/02/21 Javascript
jQuery实现图像旋转动画效果
2016/05/29 Javascript
判断颜色是否合法的正则表达式(详解)
2017/05/03 Javascript
使用vue-router为每个路由配置各自的title
2018/07/30 Javascript
微信小程序自定义组件传值 页面和组件相互传数据操作示例
2019/05/05 Javascript
webpack3.0升级4.0的方法步骤
2020/04/02 Javascript
JavaScript实现与web通信的方法详解
2020/08/07 Javascript
python实现得到当前登录用户信息的方法
2019/06/21 Python
机器学习实战之knn算法pandas
2019/06/22 Python
python GUI库图形界面开发之PyQt5线程类QThread详细使用方法
2020/02/26 Python
python中random模块详解
2021/03/01 Python
美国排名第一的泳池用品直接来源:In The Swim
2019/09/23 全球购物
Chemist Warehouse中文网:澳洲连锁大药房
2021/02/05 全球购物
初中校园之声广播稿
2014/01/15 职场文书
朋友聚会祝酒词
2015/08/10 职场文书
爱国主义主题班会
2015/08/14 职场文书
Python爬虫数据的分类及json数据使用小结
2021/03/29 Python
zabbix自定义监控nginx状态实现过程
2021/11/01 Servers
关于MySQL中的 like操作符详情
2021/11/17 MySQL