前端面试题整理——手写方法解析URL参数

    //拆分字符串形式
    function queryToObj() {
        const res = {}
        const search = location.search.substr(1);//去掉前面的“?”
        search.split('&').forEach(paramStr => {
            const arr = paramStr.split('=')
            const key = arr[0]
            const val = arr[1]
            res[key] = val
        })
        return res
    }

    //正则形式
    function queryRegExp(name){
        const search = location.search.substr(1);
        const reg = new RegExp(`(^|&)${name}=([^&]*)(&|$)`,'i')
        const res = search.match(reg)
        if(res == null){
            return null
        }
        return res[2]
    }

    // URLSearchParams
    function queryURL(name){
        const search = location.search
        const p = new URLSearchParams(search)
        return p.get(name)
    }

考点:

多种解析方式的使用

放弃安逸,持续努力——成长
原文地址:https://www.cnblogs.com/MarsPGY/p/13460094.html