题目描述
获取 url 中的参数
- 指定参数名称,返回该参数的值 或者 空字符串
- 不指定参数名称,返回全部的参数对象 或者 {}
- 如果存在多个同名参数,则返回数组
输入
> http://www.example.com?key=1&key=2&key=3&test=4#xixi key
输出
> [1, 2, 3]
代码实现
function getUrlParams(sUrl, sKey) {
var result, sParams = {};
sUrl.replace(/[\?&]?(\w+)=(\w+)/g, function (k0, k1, k2) {
console.log(k0);
console.log(k1);
console.log(k2);
// 其中 参数解析
// k01 指匹配到的完整内容
// k01 指匹配到内容的第一个括号
// k02 值匹配到内容的第二个括号
sParams[k1] ? sParams[k1].push(k2) : sParams[k1] = [k2]
})
result = sParams;
if (result[sKey]) {
return result[sKey]
} else {
return "no Match AnyThing"
}
}
测试调用
let url = "http://www.example.com?key=1&key=2&key=3&test=4#xixi"
let key = "key"
getUrlParams(url, key); // 输出 [1, 2, 3]
网友评论