自己动手封装一个url参数解释器( ghostWuUrlParser.js )
来源:互联网 发布:银行家算法实验总结 编辑:程序博客网 时间:2024/06/05 03:44
ghostWuUrlParser.js的作用是分析一段url中的查询参数,即: '?'号后面的 键值对参数.
ghostWuUrlParser.js 使用说明:
ghostWuUrlParser( 'https://www.baidu.com/s?wd=ghostwu&name=ghost&age=22&sex=man&name=zhangsan&name=lisi' )
解释出来的结果是:
{wd: "ghostwu", name: Array(3), age: "22", sex: "man"}
Array(3) = [ 'ghost', 'zhangsan', 'lisi' ]
ghostWuUrlParser( 'https://www.baidu.com/s?wd=ghostwu&name=ghost&age=22&sex=man&name=zhangsan' )
解释出来的结果是:
{wd: "ghostwu", name: Array(2), age: "22", sex: "man"}
ghostWuUrlParser( 'https://www.baidu.com/s?wd=ghostwu&name=ghost&age=22&sex=man' )
解释出来的结果是:
{wd: "ghostwu", name: "ghost", age: "22", sex: "man"}
ghostWuUrlParser( 'https://www.baidu.com/s?wd=ghostwu&name=ghost&age=22&sex=man', 'wd' )
解释出来的结果是: ghostwu
只要对字符串处理函数比较熟练,基本很容易看懂
源代码与注解:
;(function( window, undefined ){ var ghostWuUrlParser = function( url, key ){ var res = {}; if( typeof url === 'undefined' ) { throw new Error( '请输入有效的url' ); } //p:查询 '?'号是否存在 var _url = url, p = _url.search( /\?/ ); //_url: 根据p的查询结果 把问号后面的内容赋值给_url ( p != -1 ) && ( _url = _url.slice( p + 1 ) ); var q = _url.split( '&' ); for( var i = 0, len = q.length; i < len; i++ ){ var str = q[i], pos = str.search( '=' ), //k: 参数的键 k = str.substring( 0, pos != -1 ? pos : str ), //v: 参数的值 v = str.substring( pos != -1 ? ( pos + 1 ) : str ); v && ( v = decodeURIComponent( v ) ); if( res.hasOwnProperty( k ) ){ //如果出现同名的key, 且不是数组,就把当前的值 跟之前的值 合并到一个数组 if( !( res[k] instanceof Array ) ){ res[k] = [ res[k], v ]; }else { //第三次同名的key 就执行这段 res[k].push( v ); } }else { //第一次不存在的时候,直接存 k && (res[k] = v); } } //传递了key 就提取对应的key, 否则返回完整结果 return key ? res[key] : res; } //暴露接口 window.ghostWuUrlParser = ghostWuUrlParser;})( window, undefined );
阅读全文
0 0
- 自己动手封装一个url参数解释器( ghostWuUrlParser.js )
- 自己动手做一个SQL解释器
- 自己动手封装一个string类
- 一个JS获取url参数的方法
- js获取url参数值的方法封装
- 封装一个提取url参数的小方法
- js获取url参数
- JS获取URL参数
- JS获取URL参数
- js取url参数
- js获取url参数
- JS 取 URL参数
- js获取url参数
- js获得URL参数
- js获取url参数
- js获取url参数
- js 捕捉url参数
- js获取url参数
- Ext 文本框校验
- Ubuntu 16.04 LTS 完美安装QQ
- Jquery SerializeObject - 将form表单转化成Javascript object
- (3)过滤器
- SQL入门经典(第5版)第九章 汇总查询得到的数据
- 自己动手封装一个url参数解释器( ghostWuUrlParser.js )
- 嵌入式系统基础及知识及接口技术总结
- 模板
- JavaScript: 使用typeof和instanceof操作符检测数值类型和引用类型变量
- centos6.x新增用户
- 灰度图像--形态学处理(腐蚀,膨胀,开、闭运算,顶帽(礼帽),低帽(黒帽),测定腐蚀、测地膨胀,形态学重建)
- 3DSlicer31:结构的实例分析IGSReader
- 协议森林
- c 语言之fork() 函数用法