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"]
  • 相关阅读:
    Protobuf, understand the hood
    Linux下Matlab崩溃的解决方法
    高德地图AMapUI is not defined
    微信小程序
    js字符数组转化为数字数组
    高德地图网页端js API
    es6 函数的扩展(尾递归看不太懂,不浪费时间了)
    es6 数值扩展(正则稍微看了下,以后用得着再细看)
    vue清空表单
    es6 变量的解析复制
  • 原文地址:https://www.cnblogs.com/lzs-888/p/5616773.html
Copyright © 2011-2022 走看看