[牛客网-前端大挑战QD2] 获取url参数

简介: [牛客网-前端大挑战QD2] 获取url参数

题目描述

获取 url 中的参数

1.指定参数名称,返回该参数的值 或者 空字符串

2.不指定参数名称,返回全部的参数对象 或者 {}

3.如果存在多个同名参数,则返回数组

示例1

输入

http://www.nowcoder.com?key=1&key=2&key=3&test=4#hehe key

输出

[1, 2, 3]

代码

function getUrlParam(sUrl, sKey) {
    //字符分割获取键值对字符串
    var Url = sUrl.split('#')[0].split('?')[1].split('&');
    // console.log(Url);
    // 0: "key=1"
    // 1: "key=2"
    // 2: "key=3"
    // 3: "test=4"
    var res = {};
    //分离键值对
    for(var i = 0;i<Url.length;i++){
        var kv = Url[i].split('=');
        //已经含有该属性,直接push
        if(res.hasOwnProperty(kv[0])){
            res[kv[0]].push(kv[1]);
        }
        //不含该属性,创建空数组存放
        else{
            res[kv[0]] = [];
            res[kv[0]].push(kv[1]);
        }
    }
    // console.log(res);
    // key: (3) ["1", "2", "3"]
    // test: ["4"]
    //指定sKey
    if(sKey!=null){
        //含有sKey该属性
        if(res.hasOwnProperty(sKey)){
            //只有一个同名参数
            if(res[sKey].length == 1){
                return res[sKey][0];
            }
            //该参数的值为空
            if(res[sKey].length == 0){
                return "";
            }
            //多个同名参数,返回数组
            return res[sKey];
        }
        //不含sKey属性
        return "";
    }
    //不指定sKey,返回全部参数对象
    return res;
}
目录
相关文章
|
1月前
uView queryParams 对象转URL参数
uView queryParams 对象转URL参数
16 0
|
1月前
|
JavaScript
vue截取URL中的参数
vue截取URL中的参数
17 0
|
2月前
|
前端开发
调试前端时,在浏览器上修改参数并重新调用接口
有时候我们的页面点击过了,但是接口出问题,想修改参数再调用一次,一般是用apiPost工具把接口复制,再加上token和参数,但是这样非常的效率比较低。
45 0
|
3月前
|
前端开发
[牛客网-前端大挑战QD2] 获取url参数
[牛客网-前端大挑战QD2] 获取url参数
21 0
|
15天前
|
前端开发 JavaScript 应用服务中间件
前端vue2、vue3去掉url路由“ # ”号——nginx配置(二)
前端vue2、vue3去掉url路由“ # ”号——nginx配置
47 0
|
11天前
|
JavaScript
如何在JS中实现修改URL参数而不刷新页面
如何在JS中实现修改URL参数而不刷新页面
|
15天前
|
存储 JavaScript 前端开发
js原生方法,获取url上面所有参数,并返回一个对象
JavaScript函数`getUrlParameters`用于从URL中提取所有参数并返回一个键值对对象。它接收URL,分割查询字符串,解码参数对,并存储在对象中。重复参数键会被存储为数组。
|
22天前
|
JavaScript
js如何实现修改URL参数并不刷新页面
js如何实现修改URL参数并不刷新页面
|
23天前
|
安全 Java 应用服务中间件
当遇到非法 URL 参数时,如何保障网页正常打开
访问如`http://example.com?a@b=1`的链接出现400 Bad Request错误,这是因为Tomcat不允许请求目标中含有非法字符。Spring Boot 2可通过配置`server.tomcat.relaxed-query-chars`来允许特殊字符,但这样做可能引入安全风险。因此,建议在Nginx层使用`rewrite_by_lua_block`和`ngx.redirect`进行重定向,将非法字符替换为合法形式,如`http://example.com?ab=1`,同时记录日志以监控。此方案能避免直接修改后端代码,提高安全性。
28 0
|
28天前
|
存储 小程序
【边做边学】uni.switchTab的目标页面获取不到url携的参数
【边做边学】uni.switchTab的目标页面获取不到url携的参数

热门文章

最新文章