zoukankan      html  css  js  c++  java
  • jquery获得url的get参数

    只是用了第一种方法,简单好用直接传入想要获取的参数名,即可返回参数值

    function GetQueryString(name)
    {
         var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
         var r = window.location.search.substr(1).match(reg);
         if(r!=null)return  unescape(r[2]); return null;
    }

    原文如下

    方法一:采用正则表达式获取地址栏参数:( 强烈推荐,既实用又方便!)

    function GetQueryString(name)
    {
         var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
         var r = window.location.search.substr(1).match(reg);
         if(r!=null)return  unescape(r[2]); return null;
    }
     
    // 调用方法
    alert(GetQueryString("参数名1"));
    alert(GetQueryString("参数名2"));
    alert(GetQueryString("参数名3"));

    下面举一个例子:

    若地址栏URL为:abc.html?id=123&url=http://www.maidq.com

    那么,但你用上面的方法去调用:alert(GetQueryString("url"));

    则会弹出一个对话框:内容就是 http://www.maidq.com

    如果用:alert(GetQueryString("id"));那么弹出的内容就是 123 啦;

    当然如果你没有传参数的话,比如你的地址是 abc.html 后面没有参数,那强行输出调用结果有的时候会报错:

    所以我们要加一个判断 ,判断我们请求的参数是否为空,首先把值赋给一个变量:

    var myurl=GetQueryString("url");
    if(myurl !=null && myurl.toString().length>1)
    {
       alert(GetQueryString("url"));
    }

    这样就不会报错了!

    方法二:传统方法

    <script type="text/javascript">
    function UrlSearch() 
    {
       var name,value; 
       var str=location.href; //取得整个地址栏
       var num=str.indexOf("?") 
       str=str.substr(num+1); //取得所有参数   stringvar.substr(start [, length ]

       var arr=str.split("&"); //各个参数放到数组里
       for(var i=0;i < arr.length;i++){ 
        num=arr[i].indexOf("="); 
        if(num>0){ 
         name=arr[i].substring(0,num);
         value=arr[i].substr(num+1);
         this[name]=value;
         } 
        } 

    var Request=new UrlSearch(); //实例化
    alert(Request.id);
    </script>

    比如说把这个代码存为1.html

    那么我要访问1.html?id=test

    这个时候就取到test的值了


    在html里调用
    <script type="text/javascript">
    var a="http://baidu.com";
    </script>
    </head>
    <body>
    <a id="a1" href="">sadfsdfas</a>
    <script>
    var a1=document.getElementById("a1");
    a1.href=a;
    </script>

    <script type="text/javascript"> 
    var a="http://xxx.com/gg.htm?cctv"; 
    var s=a.indexOf("?"); 
    var t=a.substring(s+1);// t就是?后面的东西了 

    </script>

    stringvar.substr(start [, length ]

    返回一个从指定位置开始的指定长度的子字符串。

    stringvar

    必选项。要提取子字符串的字符串文字或 String 对象。

    start

    必选项。所需的子字符串的起始位置。字符串中的第一个字符的索引为 0。

    length

    可选项。在返回的子字符串中应包括的字符个数。

    如果 length 为 0 或负数,将返回一个空字符串。如果没有指定该参数,则子字符串将延续到 stringvar 的最后。

    下面列举出一些相关的参数:

    str.toLowerCase()   转换成小写  
    str.toUpperCase()   字符串全部转换成大写

    URL即:统一资源定位符 (Uniform Resource Locator, URL) 
    完整的URL由这几个部分构成:
    scheme://host:port/path?query#fragment 
    scheme:通信协议
    常用的http,ftp,maito等

    host:主机
    服务器(计算机)域名系统 (DNS) 主机名或 IP 地址。

    port:端口号
    整数,可选,省略时使用方案的默认端口,如http的默认端口为80。

    path:路径
    由零或多个"/"符号隔开的字符串,一般用来表示主机上的一个目录或文件地址。

    query:查询
    可选,用于给动态网页(如使用CGI、ISAPI、PHP/JSP/ASP/ASP.NET等技术制作的网页)传递参数,可有多个参数,用"&"符号隔开,每个参数的名和值用"="符号隔开。

    fragment:信息片断
    字符串,用于指定网络资源中的片断。例如一个网页中有多个名词解释,可使用fragment直接定位到某一名词解释。(也称为锚点.)

    对于这样一个URL

    http://www.maidq.com/index.html?ver=1.0&id=6#imhere

    我们可以用javascript获得其中的各个部分
    1, window.location.href
    整个URl字符串(在浏览器中就是完整的地址栏)
    本例返回值: http://www.maidq.com/index.html?ver=1.0&id=6#imhere

    2,window.location.protocol
    URL 的协议部分
    本例返回值:http:

    3,window.location.host
    URL 的主机部分
    本例返回值:www.maidq.com

    4,window.location.port
    URL 的端口部分
    如果采用默认的80端口(update:即使添加了:80),那么返回值并不是默认的80而是空字符
    本例返回值:""

    5,window.location.pathname
    URL 的路径部分(就是文件地址)
    本例返回值:/fisker/post/0703/window.location.html

    6,window.location.search
    查询(参数)部分
    除了给动态语言赋值以外,我们同样可以给静态页面,并使用javascript来获得相信应的参数值
    本例返回值:?ver=1.0&id=6

    7,window.location.hash
    锚点
    本例返回值:#imhere

  • 相关阅读:
    Redis源码分析(二十一)--- anet网络通信的封装
    leetcode 总结part1
    leetcode String to Integer (atoi)
    leetcode 165. Compare Version Numbers
    leetcode 189. Rotate Array
    leetcode 168. Excel Sheet Column Title
    leetcode 155. Min Stack
    leetcode 228. Summary Ranges
    leetcode 204. Count Primes
    leetcode 6. ZigZag Conversion
  • 原文地址:https://www.cnblogs.com/jinshuo/p/8074052.html
Copyright © 2011-2022 走看看