JS解析URL

js解析URL參數

咱們以http://www.example.com:8989/test/index.html#box?username=yxw&age=11爲當前頁面的URL
獲取當前頁面的URL: location.href
location除了href屬性以外,還有如下幾個屬性
咱們的URL大致能夠分爲一下幾個部分html

屬 性 名 例 子 說 明
protocol 'http' 返回頁面使用的協議。一般是http:或https:
hostname 'www.example.com' 返回不帶端口號的服務器名稱
host 'www.example.com:8989' 返回服務器名稱和端口號(若有端口號則返回,不然不返回端口號)
port '8989' 返回URL中指定的端口號,若是URL中不包含端口號,
則這個屬性返回空字符串
pathname '/test/index.html' 返回URL中的目錄和(或)文件名
hash '#box' 返回URL中hash(錨點連接,#後面跟零或多個字符),
若是URL中不包含,則返回空字符串
search '?username=yxw&age=11' 返回URL的查詢字符串,這個字符串以問號(?)開頭
  1. 若是咱們想獲取example這個字符串,咱們能夠用如下方法:
    var brand=location.hostname.split('.')[1]; console.log(brand) //'example'
    將獲取到的字符串按照 ‘.’分割開來,返回的是一個數組,而後取數組的第一項
  2. 建立一個函數,解析查詢字符串而後返回一個包含全部參數的一個對象:
    function getQueryStringArgs() { //取得查詢字符串並去掉開頭問號 var qs = (location.search.length > 0 ? location.search.substring(1) : ''); // 保存數據的對象 var args = {}; // 取得每一項 var items = qs.length ? qs.split('&') : []; var item = null, name = null, value = null; //逐個將每一項添加到args對象中 for (var i = 0; i < items.length; i++) { item = items[i].split('='); name = decodeURIComponent(item[0]); value = decodeURIComponent(item[1]); if (name.length) { args[name] = value; } } return args; } args=getQueryStringArgs(); console.log(args['username']) //yxw
相關文章
相關標籤/搜索