js获取当前域名、Url、相对路径和参数以及指定参数

旧城等待, 2021-06-26 16:06 1177阅读 0赞

一、js获取当前域名有2种方法

1、方法一

  1. var domain = document.domain;

2、方法二

  1. var domain = window.location.host;

3、注意问题

由于获取到的当前域名不包括 http://,所以把获取到的域名赋给 a 标签的 href 时,别忘了加上 http://,否则单击链接时导航会出错。

二、获取当前Url的4种方法

  1. var url = window.location.href;
  2.   var url = self.location.href;
  3.   var url = document.URL;
  4.   var url = document.location;

ie 地址栏显示的是什么,获取到的 url 就是什么。

三、获取当前相对路径的方法

首先获取 Url,然后把 Url 通过 // 截成两部分,再从后一部分中截取相对路径。如果截取到的相对路径中有参数,则把参数去掉。

  1.   function GetUrlRelativePath()
  2.   {
  3.     var url = document.location.toString();
  4.     var arrUrl = url.split("//");
  5.     var start = arrUrl[1].indexOf("/");
  6.     var relUrl = arrUrl[1].substring(start);//stop省略,截取从start开始到结尾的所有字符
  7.     if(relUrl.indexOf("?") != -1){
  8.       relUrl = relUrl.split("?")[0];
  9.     }
  10.     return relUrl;
  11.   }

调用方法:GetUrlRelativePath();

举例:假如当前 Urlhttp// www. liangshunet. com/pub/item.aspx?t=osw7,则截取到的相对路径为:/pub/item.aspx

四、获取当前Url参数的方法

1、获取Url参数部分

  1.   function GetUrlPara()
  2.   {
  3.     var url = document.location.toString();
  4.     var arrUrl = url.split("?");
  5.     var para = arrUrl[1];
  6.     return para;
  7.   }

调用方法:GetUrlPara()

举例:假如当前 Url 是 http// www. liangshunet. com/pub/item.aspx?t=osw7,则截取到的参数部分为:t=osw7

五、获取指定Url参数的方法

在这里插入图片描述

  1. function GetQueryString(name)
  2. {
  3. var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); //这个正则是寻找&+url参数名字=值+&
  4. &可以不存在。
  5. var r = window.location.search.substr(1).match(reg);//search,查询?后面的参数,并匹配正则
  6. if(r!=null)return unescape(r[2]); return null;
  7. }
  8. // 调用方法
  9. alert(GetQueryString("参数名1"));
  10. 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地址域名:

  1. <?php
  2. $url = "http://www.abcdef.com/index.php";
  3. // $url = "http://www.abcdef.com/index.php?g=Index&m=Index&a=index";
  4. preg_match("/^(\w+:\/\/)?([^\/]+)/i", $url , $matches);
  5. // 获得主机名
  6. $host = $matches[2];
  7. // 从主机名中取得后面两段(.符号将主机名划分为三段,后两段即为域名)
  8. preg_match("/[^.\/]+\.[^.\/]+$/", $host, $matches);
  9. echo "$matches[0]";
  10. ?>

结果为:abcdef.com

2、获取url中的文件后缀名:

url不带参数时,此时匹配的正则式为:”/\.(\w+)$/“;当url带参数时,此时匹配的正则式为:”/\.(\w+)\?/“(注意此时文件后缀名后还带着个问号)。

将这两种情况合并,可编写出获得文件后缀名的php代码:

  1. <?php
  2. // $url = "http://www.abcdef.com/index.php";
  3. $url = "http://www.abcdef.com/index.php?g=Index&m=Index&a=index";
  4. //获得url地址文件后缀名(可能包含问号?)
  5. preg_match("/(\.(\w+)\?)|(\.(\w+)$)/",$url,$str);
  6. //去除问号
  7. $suffix = preg_split("/\?/",$str[0]);
  8. echo $suffix[0];
  9. ?>

结果为:.php


正则表达式从URL获取文件名

发表评论

表情:
评论列表 (有 0 条评论,1177人围观)

还没有评论,来说两句吧...

相关阅读