zoukankan      html  css  js  c++  java
  • js提取url参数的几种方法(转)

    js提取url参数的几种方法

    第一,正则表达式,直接找出参数等号右边的值即可。但是,如果该参数后还有&就不可行。
        <script language="javascript">
        var str=window.location.href;
        var es=/clid=/;
         es.exec(str);
        var right=RegExp.rightContext;
        if(right=="1")
        {
         sub_nav_4.style.display = "block";
         li4.style.background = "#a1ca00";
         }
        </script>第二,把能找到的参数都付给argsarr数组,将来可以用argsarr[i]进行相应的访问,方法不错,太长,参数不容易记忆。      /**//**
           * 提取URL中的参数
          */
         function getArgs()
         {
           //加上substring的意义是去掉查询字符串中的?号。
           //var query = window.location.search.substring(1);
          
           //定义一个数组,用于存放取出来的字符串参数。
           var argsArr = new Object();
          
           //获取URL中的查询字符串参数
           var query = window.location.search;
            query = query.substring(1);
          
           //这里的pairs是一个字符串数组
           var pairs = query.split("&");//name=myname&password=1234&sex=male&address=nanjing
          
           for(var i=0;i<pairs.length;i++)
           {
             var sign = pairs[i].indexOf("=");
             //如果没有找到=号,那么就跳过,跳到下一个字符串(下一个循环)。
             if(sign == -1)
             {
               continue;
              }
            
             var aKey = pairs[i].substring(0,sign);
             var aValue = pairs[i].substring(sign+1);      
            
              argsArr[aKey] = aValue;
            }
          
           return argsArr;
          }
    第三,最简单的方法,类似第二种,不过没有创建数组存参数,可直接访问参数的名字,容易看懂。             <script language="javascript">
                function getarg()
                {
                var url = unescape(window.location.href);
                var allargs = url.split("?")[1];
                var args = allargs.split("&");
                for(var i=0; i<args.length; i++)
                {
                var arg = args[i].split("=");
                 eval('this.'+arg[0]+'="'+arg[1]+'";');
                 }
                 }
                var urlarg=new getarg();
                if(urlarg.clid=="1")
                    {
                     sub_nav_6.style.display = "block";
                     li6.style.background = "#a1ca00";
                     }
                </script>

  • 相关阅读:
    oracle 日期函数
    SharpDevelop学习笔记(5)—— AddIns系统详解
    C#3.0 为我们带来什么(2) —— 自动属性
    SharpDevelop学习笔记(6)—— AddIn构建指南
    SharpDevelp2.0学习笔记(1)——SharpDevelp简单介绍
    对象数组根据某属性列的灵活排序
    SharpDevelop学习笔记(4)——SharpDevelop的核心
    也谈2007
    SharpDevelop学习笔记(2)——体系结构
    C#3.0 为我们带来什么(1) —— LINQ之Lambda
  • 原文地址:https://www.cnblogs.com/ejiyuan/p/818757.html
Copyright © 2011-2022 走看看