js獲取當前域名、Url、相對路徑和參數以及指定參數

一、js獲取當前域名有2種方法

1、方法一

var domain = document.domain;

2、方法二

var domain = window.location.host;

3、注意問題

由於獲取到的當前域名不包括 http://,所以把獲取到的域名賦給 a 標籤的 href 時,別忘了加上 http://,否則單擊鏈接時導航會出錯。

二、獲取當前Url的4種方法

   var url = window.location.href;

  var url = self.location.href;

  var url = document.URL;

  var url = document.location;

ie 地址欄顯示的是什麼,獲取到的 url 就是什麼。

三、獲取當前相對路徑的方法

首先獲取 Url,然後把 Url 通過 // 截成兩部分,再從後一部分中截取相對路徑。如果截取到的相對路徑中有參數,則把參數去掉。

  function GetUrlRelativePath()
  {

    var url = document.location.toString();

    var arrUrl = url.split("//");

    var start = arrUrl[1].indexOf("/");

    var relUrl = arrUrl[1].substring(start);//stop省略,截取從start開始到結尾的所有字符

    if(relUrl.indexOf("?") != -1){

      relUrl = relUrl.split("?")[0];

    }

    return relUrl;

  }

調用方法:GetUrlRelativePath();

舉例:假如當前 Urlhttp// www. liangshunet. com/pub/item.aspx?t=osw7,則截取到的相對路徑爲:/pub/item.aspx

四、獲取當前Url參數的方法

1、獲取Url參數部分

  function GetUrlPara()

  {

    var url = document.location.toString();

    var arrUrl = url.split("?");

    var para = arrUrl[1];

    return para;

  }

調用方法:GetUrlPara()

舉例:假如當前 Url 是 http// www. liangshunet. com/pub/item.aspx?t=osw7,則截取到的參數部分爲:t=osw7

五、獲取指定Url參數的方法

在這裏插入圖片描述

function GetQueryString(name)
{

    var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); //這個正則是尋找&+url參數名字=值+&

&可以不存在。

    var r = window.location.search.substr(1).match(reg);//search,查詢?後面的參數,並匹配正則

    if(r!=null)return  unescape(r[2]); return null;

}

// 調用方法
alert(GetQueryString("參數名1"));

alert(GetQueryString("參數名2"));

調用方法:GetQueryString("id");

舉例說明:

假如當網頁的網址有這樣的參數 test.htm?id=896&s=q&p=5,則調用 GetUrlParam("p"),返回 5


通過正則表達式獲取標準url地址的域名和文件後綴名

形如“http://www.abcdef.com/index.php”或“http://www.abcdef.com/index.php?g=Index&m=Index&a=index”的地址即爲標準的url地址,現在我們要通過正則式來獲取它的域名“abcdef.com”和地址中的文件後綴名“.php”。

1、獲取url地址域名:

    <?php
     
        $url = "http://www.abcdef.com/index.php";
        // $url = "http://www.abcdef.com/index.php?g=Index&m=Index&a=index";
        preg_match("/^(\w+:\/\/)?([^\/]+)/i", $url , $matches);
        // 獲得主機名
        $host = $matches[2];
        // 從主機名中取得後面兩段(.符號將主機名劃分爲三段,後兩段即爲域名)
        preg_match("/[^.\/]+\.[^.\/]+$/", $host, $matches);
        echo "$matches[0]";
     
    ?>

結果爲:abcdef.com

2、獲取url中的文件後綴名:

url不帶參數時,此時匹配的正則式爲:"/\.(\w+)$/";當url帶參數時,此時匹配的正則式爲:"/\.(\w+)\?/"(注意此時文件後綴名後還帶着個問號)。

將這兩種情況合併,可編寫出獲得文件後綴名的php代碼:

    <?php
     
        // $url = "http://www.abcdef.com/index.php";
        $url = "http://www.abcdef.com/index.php?g=Index&m=Index&a=index";
        //獲得url地址文件後綴名(可能包含問號?)
        preg_match("/(\.(\w+)\?)|(\.(\w+)$)/",$url,$str);
        //去除問號
        $suffix = preg_split("/\?/",$str[0]);
        echo $suffix[0];
    ?>
     

結果爲:.php


正則表達式從URL獲取文件名

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章