JavaScript解析url,返回参数对象
1. split()
split()的参数可以是正则表达式
var url = "www.meituan.com/waimai?name=zpj&counts=2&time=1506";
url.split(/[?&]/g) // 使用?&分割
.slice(1) // 去掉非参数信息
.map( d => d.split("=") ) // 分割参数对儿
.reduce( (a,c)=> {a[c[0]] = c[1]; return a},{}); // 降维成对象
2. replace()
replace()回调函数中可以调用捕获组
var url = "www.meituan.com/waimai?name=zpj&counts=2&time=1506";
var params = {};
url.replace(/[\?|&](\w+)=(\w+)/g, (w, $1, $2)=>{params[$1]=$2; return w;});