js如何解析url

JavaScript018

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

}

使用js对当前的URL进行操作,可以使用内置对象window.location;

window.location有以下属性:

window.location.href:取得当前地址栏中的完整URL,可以通过赋值改变当前地址栏中的URL;

window.location.search 取得当前URL的参数部分,即“?”后面的部分(包括问号),可以通过赋值改变URL的参数部分;

window.location.hash:取得当前URL中包含的锚记,即“#”后面的部分(包括#),可以通过赋值改变URL的锚记部分

window.location.host:取得当前URL中的主机信息,包括端口号,可以通过赋值改变主机信息;

window.location.hostname:取得当前URL中的域名部分,不包括端口号,可以通过赋值改变域名;

window.location.port:取得当前URL中的端口号,可以通过赋值改变端口号;

window.location.pathname:取得当前URL中的路径信息,即域名与参数之间的部分,可以通过赋值改变当前URL的路径;

window.location.protocol:取得当前URL的协议部分,比如http:,https:等,可以通过赋值改变URL的协议部分;

window.location有一下方法:

window.location.replace(url):用传入的URL字符串替代当前的URL,该方法会将历史记录中的URL一并替换掉,也就是说,这个方法会覆盖之前的历史记录;

window.location.reload():重新加载当前URL,相当于刷新;

window.location.assign(url):加载传入的URL,该方法不会覆盖之前的历史记录;