1. 程式人生 > >js讀取cookie 根據cookie名稱獲取值的方法

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;
    }
}