1. 程式人生 > >設置cookie,獲取cookie,刪除cookie

設置cookie,獲取cookie,刪除cookie

dom exp 文檔 cap domain ron regexp cookie 常用

怎麽設置cookie,怎麽設置cookie以及刪除cookie和cookie詳解


設置cookie:
 1 /**
 2      * 設置cookie
 3      * @param name cookie的名稱
 4      * @param value cookie的值
 5      * @param day cookie的過期時間
 6      */
 7     var setCookie = function (name, value, day) {
 8       if(day !== 0){     //當設置的時間等於0時,不設置expires屬性,cookie在瀏覽器關閉後刪除
9 var expires = day * 24 * 60 * 60 * 1000; 10 var date = new Date(); 11 date.setTime(date.getTime() + expires); 12 document.cookie = name + "=" + escape(value) + ";expires=" + date.toUTCString(); 13 }else{ 14 document.cookie = name + "=" + escape(value); 15 }
16 };

註意:expires使用GMT或UTC格式的時間



獲取cookie:
 1 /**
 2      * 獲取對應名稱的cookie
 3      * @param name cookie的名稱
 4      * @returns {null} 不存在時,返回null
 5      */
 6     var getCookie = function (name) {
 7       var arr;
 8       var reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
 9       if (arr = document.cookie.match(reg))
10 return unescape(arr[2]); 11 else 12 return null; 13 };

cookie獲取正則解析:
"(^| )" + name + "=([^;]*)(;|$)"  (^| )匹配cookie開頭或空格(cookie鍵值對之間用分號空格隔開),接著是cookie的名稱name,([^;]*)匹配除分號以外的任意字符,最後(;|$)匹配分號或整個cookie的結尾

更多正則的語法詳解請參考:

正則表達式的用法和常用實例【1】

 



刪除cookie:

1 /**
2      * 刪除cookie
3      * @param name cookie的名稱
4      */
5     var delCookie = function (name) {
6       setCookie(name, ‘ ‘, -1);
7     };

設置要刪除的cookie的expires為過去的時間即可

cookie的主要作用:

Cookie主要用在以下三個方面:

  • 會話狀態管理(如用戶登錄狀態、購物車、遊戲分數和其它需要記錄的信息)
  • 個性化設置(如用戶自定義設置、主題等)
  • 瀏覽器行為跟蹤(如跟蹤分析用戶行為)

cookie設置語法:

document.cookie = "cookieName=mader; expires=Fri, 31 Dec 2017 15:59:59 GMT; path=/mydir; domain=cnblogs.com; max-age=3600; secure=true";

  • cookieName=mader :name=value,cookie的名稱和值
  • expires=Fri, 31 Dec 2017 15:59:59 GMT: expires,cookie過期的日期,如果沒有定義,cookie會在對話結束時過期。日期格式為 new Date().toUTCString()
  • path=/mydir: path=path (例如 ‘/‘, ‘/mydir‘) 如果沒有定義,默認為當前文檔位置的路徑。
  • domain=cnblogs.com: 指定域(例如 ‘example.com‘, ‘.example.com‘ (包括所有子域名), ‘subdomain.example.com‘) 如果沒有定義,默認為當前文檔位置的路徑的域名部分。
  • max-age=3600: 文檔被查看後cookie過期時間,單位為秒
  • secure=true: cookie只會被https傳輸 ,即加密的https鏈接傳輸

設置cookie,獲取cookie,刪除cookie