js读取cookie 根据cookie名称获取值的方法

//方法1  
//存在问题:如果cookie中存在 aaaname=aa;name=bb 获取name的值就会出现错误
function getCookie(c_name){
    if (document.cookie.length>0){//判断cookie是否存在
      //获取cookie名称加=的索引值
      var c_start = document.cookie.indexOf(c_name + "=");
      if (c_start!=-1){ //说明这个cookie存在
        //获取cookie名称对应值的开始索引值
        c_start=c_start + c_name.length+1
        //从c_start位置开始找第一个分号的索引值,也就是cookie名称对应值的结束索引值
        c_end=document.cookie.indexOf(";",c_start)  
        //如果找不到,说明是cookie名称对应值的结束索引值就是cookie的长度
        if (c_end==-1) c_end=document.cookie.length
        //unescape() 函数可对通过 escape() 编码的字符串进行解码
        //获取cookie名称对应的值,并返回
        return unescape(document.cookie.substring(c_start,c_end))
      }
    }
    return "" //不存在返回空字符串
}

//方法2
function getCookie2(name){
    var strcookie = document.cookie;//获取cookie字符串
    var arrcookie = strcookie.split("; ");//分割
    //遍历匹配
    for ( var i = 0; i < arrcookie.length; i++) {
        var arr = arrcookie[i].split("=");
        if (arr[0] == name){
            return arr[1];
        }
    }
    return "";
}

//方法3
function getCookie3(name){
    //可以搜索RegExp和match进行学习
    var arr,reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
    if (arr = document.cookie.match(reg)) {
        return unescape(arr[2]);
    } else {
        return null;
    }
}
  • 4
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值