zoukankan      html  css  js  c++  java
  • js获取cookie 和 模仿php的&_GET方法

    //获取get参数
    function _get(name){
            var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
            var data = window.location.search.substr(1).match(reg);
            return data!=null?decodeURIComponent(data[2]):null;
    }
    
    //获取指定名称的cookie
    //正则解析
    //(^| ) 匹配开头或者空格
    //([^;]*) 匹配除了;号外的任意字符 任意次
    //(;|$) 匹配;或者文本结尾

    function getCookie(name){
      var reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
      var arr = document.cookie.match(reg);
      return arr?decodeURIComponent(arr[2]):null;
    }

    1.正则解释
    ()表示一个子表达式 1.在被修饰匹配次数的时候,括号中的表达式可以作为整体被修饰2.取匹配结果的时候,括号中的表达式匹配到的内容可以被单独得到
    (^|&) 分枝条件,匹配字符串开头或者&字符
    ([^&]*) 匹配除了&之外的字符0次或多次 相当于 {0,}
    (&|$) 匹配字符串结尾或者&字符
    2.match() 方法
    stringObject.match(regexp)
    如果 regexp 没有标志 g:
    1)没有匹配到内容则返回null
    2)匹配到了之后则返回一个数组arr
    arr[0] => 匹配文本
    其余的是正则表达式的子表达式匹配的文本
    3)附带两个属性
    index:匹配文本在的位置
    input:对stringObject的引用
    如:
    var str = "aaa=111&bbb=222&ccc=333&callback=123";
    var name = 'aaa';
    var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
    var rs = str.match(reg);
    console.log(rs);
    //输出 ["aaa=111&", "", "111", "&", index: 0, input: "aaa=111&bbb=222&ccc=333&callback=123"]
  • 相关阅读:
    .NET技术对软件行业的积极作用
    ADO.NET Entityframework MYSQL provider
    用杯子量水问题通用解法
    详解.NET异步
    说 框架、架构、模式、重构
    谈 三层结构与MVC模式的区别
    面试题一例分享
    LINQ notes2 lambda expression
    毕业论文B.3 DTW算法
    LINQ notes1 intro
  • 原文地址:https://www.cnblogs.com/lzs-888/p/5616773.html
Copyright © 2011-2022 走看看