[JS算法题]获取url参数
获取 url 参数
https://www.nowcoder.com/questionTerminal/a3ded747e3884a3c86d09d88d1652e10
题目描述
- 指定参数名称,返回该参数的值或者空字符串;
- 不指定参数名称,返回全部的参数对象或者 {};
- 如果存在多个同名参数,则返回数组 ;
输入http://www.nowcoder.com?key=1&key=2&key=3&test=4#hehe
输出[1, 2, 3]
解决方法
function getUrlParam(sUrl, sKey) { var result, sParam = {}; sUrl.replace(/[\?&]?(\w+)=(\w+)/g, function(k0, k1, k2){ sParam[k1] === void 0 ? sParam[k1] = k2 : sParam[k1] = [].concat(sParam[k1], k2); }); sKey === void 0 || sKey === '' ? result = sParam : result = sParam[sKey] || ''; return result; }
正则表达式/[?&]?(\w+)=(\w+)/g