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的更多相关文章

  1. [转]一步一步asp.net_购物车订单与支付宝

    本文转自:http://www.cnblogs.com/mysweet/archive/2012/05/19/2508534.html 最近这几天很忙,一边忙着准备一堆课程设计(8门专业课.....伤 ...

  2. javaScript用正则来获取url传递的参数

    用window.location.href获取url再js正则来获得需要的参数: 这个正则有多种写法,这里我选择这样写,要查找的属性名我直接以参数的形式传进去,用正则查找,以"?&# ...

随机推荐

  1. vue-cli项目模板的一些思考

    之前有个想法,就是要利用vue写一套ui.然后当时也没有搞清楚到底怎么写. 几经周转吧,通过付费的方式在gitbook上面找到了答案. 找到答案之后再看我们正在开发的项目,看伙伴写的代码,突然发现完全 ...

  2. [go]日志库小例子

    输出日志 //输出日志到console msg := fmt.Sprintf(format, args...) //format里的坑 args解出的数据相匹配 fmt.Fprintf(os.Stdo ...

  3. centos7 搭建FTP

    通过yum安装vsftpd yum install -y vsftpd 修改vsftpd的配置文件 vim /etc/vsftpd/vsftpd.conf 修改配置文件如下: 1.不允许匿名访问 an ...

  4. uni-app 使用 iconfont 图标 自定义图标

    uni-app 的uni-ui 的 Icon 图标组件,裡面的图标只是移动端常见的图标,对于一些其他需求所要显示的图标,这个是完全不够用.那么怎么办?模仿它的组件,用阿里巴巴图标矢量库的图标,自己定义 ...

  5. Python基础-day04

    函数基础 目标 函数的快速体验 函数的基本使用 函数的参数 函数的返回值 函数的嵌套调用 在模块中定义函数 01. 函数的快速体验 1.1 快速体验 所谓函数,就是把 具有独立功能的代码块 组织为一个 ...

  6. PyToune:一款类Keras的PyTorch框架

    PyToune is a Keras-like framework for PyTorch and handles much of the boilerplating code needed to t ...

  7. BP神经网络算法预测销量高低

    理论以前写过:https://www.cnblogs.com/fangxiaoqi/p/11306545.html,这里根据天气.是否周末.有无促销的情况,来预测销量情况. function [ ma ...

  8. Vue面试题总结——目录

    首先致敬所有积极分享自己的学习经验的程序猿.本文及其链接的绝大部分文章均属各个网站上面排名靠前,条理清晰的文章.考虑到如果只放链接可能会存在失效导致无法访问的问题,对应的复制粘贴了这些文章过来.对每一 ...

  9. python使用socket向客户端发送数据的方法

    在使用locust测试长连接的时候,所有的请求全部faillure了,所以想到手动写一个连接脚本测试一下是否能连通 因为centos7自带python2.7所以用python写一个比较方便. #!/u ...

  10. zabbix监控LAMP全教程

    一.安装前准备 A.下载yum源 1.备份/etc/yum.repos.d/CentOS-Base.repo ,在备份之前,要先安装wget 插件 #mv /etc/yum.repos.d/CentO ...