使用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 相关文章推荐
JavaScript通过select动态更换图片的方法
Mar 23 Javascript
JavaScript实现将UPC转换成ISBN的方法
May 26 Javascript
javascript实现类似于新浪微博搜索框弹出效果的方法
Jul 27 Javascript
jquery判断密码强度的验证代码
Apr 22 Javascript
无阻塞加载js,防止因js加载不了影响页面显示的问题
Dec 18 Javascript
create-react-app修改为多页面支持的方法
May 17 Javascript
VUE2.0中Jsonp的使用方法
May 22 Javascript
React 组件间的通信示例
Jun 14 Javascript
Vue+element-ui 实现表格的分页功能示例
Aug 18 Javascript
Node.js 使用axios读写influxDB的方法示例
Oct 26 Javascript
vue实现微信获取用户信息的方法
Mar 21 Javascript
vue组件间通信六种方式(总结篇)
May 15 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
解决中英文字符串长度问题函数
2007/01/16 PHP
基于OpenCV的PHP图像人脸识别技术
2009/10/11 PHP
保存到桌面、设为桌面且带图标的PHP代码
2013/11/19 PHP
destoon切换城市后实现logo旁边显示地区名称的方法
2014/08/21 PHP
JavaScript与HTML结合的基本使用方法整理
2015/10/12 PHP
ThinkPHP5.1表单令牌Token失效问题的解决
2019/03/22 PHP
PHP面向对象类型约束用法分析
2019/06/12 PHP
YII2.0框架行为(Behavior)深入详解
2019/07/26 PHP
使用Javascript和DOM Interfaces来处理HTML
2006/10/09 Javascript
如何学习Javascript入门指导
2013/11/01 Javascript
jquery的ajax提交form表单的两种方法小结(推荐)
2016/05/25 Javascript
jQuery的deferred对象使用详解
2016/09/25 Javascript
利用JavaScript对中文(汉字)进行排序实例详解
2017/06/18 Javascript
详解Node 定时器
2018/02/26 Javascript
vue数据初始化initState的实例详解
2019/04/11 Javascript
微信小程序拼接图片链接无底洞深入探究
2019/09/03 Javascript
vue 全局环境切换问题
2019/10/27 Javascript
JavaScript原型继承和原型链原理详解
2020/02/04 Javascript
Element-ui upload上传文件限制的解决方法
2021/01/22 Javascript
[03:42]2014DOTA2国际邀请赛 第三日比赛排位扑朔迷离
2014/07/12 DOTA
在Python中使用base64模块处理字符编码的教程
2015/04/28 Python
python实现的系统实用log类实例
2015/06/30 Python
python 反向输出字符串的方法
2018/07/16 Python
celery4+django2定时任务的实现代码
2018/12/23 Python
python用pip install时安装失败的一系列问题及解决方法
2020/02/24 Python
pycharm实现在虚拟环境中引入别人的项目
2020/03/09 Python
Python基于wordcloud及jieba实现中国地图词云图
2020/06/09 Python
Tensorflow与Keras自适应使用显存方式
2020/06/22 Python
如何在 Matplotlib 中更改绘图背景的实现
2020/11/26 Python
巴西男士个人护理产品商店:SHOP4MEN
2017/08/07 全球购物
南京某公司笔试题
2013/01/27 面试题
WebSphere面试题:在WebSphere里面如何部署一个应用
2015/08/02 面试题
房屋出租协议书
2014/04/10 职场文书
小学安全工作汇报材料
2014/08/19 职场文书
行政介绍信范文
2015/05/04 职场文书
如何理解PHP核心特性命名空间
2021/05/28 PHP