js如何解析url

JavaScript010

js如何解析url,第1张

你要解析出什么东西?

反正所有的东西都在window.location 对象里面:

location.host 返回主机和端口号

location.hostname 返回 web 主机的域名

location.pathname 返回当前页面的路径和文件名

location.port 返回 web 主机的端口 (80 或 443)

location.protocol 返回所使用的 web 协议(http:// 或 https://)

location.hash  返回锚(#后面)

location.href 返回完整的url

location.search 返回参数部分(?后面)

其他的东西比如获取参数值什么的用正则就行了,一个方法搞定:

window.getParam = function (name) {

    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)")

    var r = window.location.search.substring(1).match(reg)

    return r ? decodeURI(r[2]) : null

}

var parseQuery = function(query){

    var reg = /([^=&\s]+)[=\s]*([^=&\s]*)/g

    var obj = {}

    while(reg.exec(query)){

        obj[RegExp.$1] = RegExp.$2

    }

    return obj

}

var jerry = parseQuery("name=jerry&age=1")

console.log(jerry)

var tom = parseQuery("name= tom &age=12&gender&")

console.info(tom)

本章内容分为三部分: 开始之前先简单了解一下 如:url地址: http://xxxxx:9010/test.html?leaf&le=2window.location.search获取到的就是 ?leaf&le=2 window.location.search.substr(1)获取到的就是 leaf&le=2 一、JS获取地址栏url参数: 如果你想获取地址栏的其他参数,只需要执行 var 参数=getUrlParam('参数') 比如获取参数a,执行 var a=getUrlParam('a') 就可以啦。简单又实用。 二、解决请求接口乱码问题 但是在我请求接口数据的时候,页面获取到是类似???这种乱码。 然后我是这样解决的: 1、发送方decodeURI编码: 2、接收方encodeURI解码 根据后台接口拼接url中使用encodeURI: 三、关于根据后台接口拼接url 整理笔记,不断优化更新。如果有错误或可以优化的地方欢迎指出,互相学习,共同进步。 如果对你有用就点个小心心吧❤