queryURLParams
let url = 'http://www.douqu.com/index.html?name1=val1&name2=val2';
//1.提取问号后的字符 let asktext = url.substring(url.indexOf('?')+1,url.length); //2.后面值的处理 let askary = asktext.split('&');
askary.forEach((item)=>{
let n = item.split('=');
let key = n[0];
let value = n[1];
result[key] = value;
});
console.log(result);
优化方案,进行函数封装,考虑多种情况
//考虑有无哈希值与问号的存在
/*
@params:url[string]
@return:[object]包含参数和哈希信息的对象
*/
function queryURLParams(url){
let askIn = url.indexOf('?');
let wellIn = url.indexOf('#');
let welltext = '';
let asktext = '';
//#不存在,?存在时所做的事,并获取将要处理的字符片段
wellIn === -1?wellIn=url.length : wellIn;
askIn >= 0?asktext = url.substring(askIn+1,wellIn) : null;
welltext = url.substring(wellIn+1); //处理信息
let result = {};
welltext!=='''?result['hash'] = well : null;
if(asktext!==""){
let ary = asktext.split('&');
ary.forEach((item=>{
let n = item.split('=');
let key = n[0];
let value = n[1];
result[key] = value;
}));
}
return result;
}
正则方式实现
function queryURLParams(){
let result = {};
reg1 = /([^?=&#]+)=([^?=&#]+)/g
reg2 = /#([^?=&#]+)/g
url.replace(reg1,(n,x,y)=>result[x]=y);
url.replace(reg2,(n,x)=>result['hash']=x);
return result;
}
//正则的强大由此可见
queryURLParams的更多相关文章
- [转]一步一步asp.net_购物车订单与支付宝
本文转自:http://www.cnblogs.com/mysweet/archive/2012/05/19/2508534.html 最近这几天很忙,一边忙着准备一堆课程设计(8门专业课.....伤 ...
- javaScript用正则来获取url传递的参数
用window.location.href获取url再js正则来获得需要的参数: 这个正则有多种写法,这里我选择这样写,要查找的属性名我直接以参数的形式传进去,用正则查找,以"?&# ...
随机推荐
- Swiper轮播插件使用
前文 Swiper是纯javascript打造的滑动特效插件,面向手机.平板电脑等移动终端,能实现触屏焦点图.触屏Tab切换.触屏多图切换等常用效果. 归根到此,Swi ...
- Java连接阿里云HBase示例
使用前要在阿里云的 HBase控制台中点击"修改网络白名单",然后将你的ip地址(会有提示的)添加到网络白名单中,这样以后才能访问. 所需依赖: <dependencies& ...
- oracle自增主键
本文参考-https://www.cnblogs.com/xxaxx/p/3584036.html oracle没有像sqlserver中identity一样的函数,需要依赖于序列.触发器来实现自增主 ...
- ArcMap 制作广州 18 级地图切片需要多少时间?
制作地图切片包会随着级别的上升,瓦片数量会指数级地上升,所需的计算时间也是指数级的. 但是 ArcMap 并不会提示时间信息,只有一个圈没完没了地转... 就在这无聊地等待中,我写了这篇帖子. 电脑配 ...
- MapReduce程序的开发过程
1. 在linux(虚拟机环境)下安装hadoop2.8.3 1.1 安装JDK环境 1.2 安装hadoop 1.3 进行配置:core-site.xml,hdfs-site.xml设置 1.4 初 ...
- CG标准函数
- redis分布式锁,面试官请随便问,我都会
目录 前言 实现要点 错误解锁方式 正确加锁释放锁方式 前言 现在的业务场景越来越复杂,使用的架构也就越来越复杂,分布式.高并发已经是业务要求的常态.像腾讯系的不少服务,还有CDN优化.异地多备份等处 ...
- python3 安装pip提示没有distutils.util模块错误的解决
Python3 安装pip 提示ModuleNotFoundError: No module named 'distutils.util' 环境ubutun14,python版本是python3. ...
- Arduino基础入门篇-进入Arduino的世界
写在前面,首先是发现有网友对Arduino做了介绍,而且介绍比较清晰到位,就引用过来了. 文章出处:https://blog.csdn.net/TonyIOT/article/details/8091 ...
- windows下编译配置libnet-1.2-rc3
1.下载winpcap(一个底层驱动,可以嗅探.过滤网卡数据包,发包).exe安装包,傻瓜一步式安装 2.下载WpdPack_4_1_2,这个是winpcap的开发者包,解压之后只需要配置相关路径. ...