js中使用cookie的地方有很多,保存用戶名及密碼,保存登陸信息等,使下次用戶上線就有很好的體驗~。下面來說說js中cookie的使用方法和封裝方法
1、(設置)設置cookie,設置cookie一般需要設置值和時間,如果不設置時間則會隨著瀏覽器關(guān)閉而關(guān)閉!
設置值的形式為“屬性=值”的形式,設置的時候還算舒服,可是獲取就不是那么人性化了~
var time = new Date( new Date().getTime() + 365*24*60*60*1000 ); //設置時間為365天(有的網(wǎng)頁就是這么暴力,直接整一年!)
document.cookie = "dd=goudan;expires="+time.toGMTString();"http://
此時我們可看到我們已經(jīng)設置了一個名為dd ,值為goudan的cookie,如果要查看可以打開chrome瀏覽器點擊此處查看
[圖片上傳失敗...(image-ca4575-1515155390053)]
2、(獲取)此時我們獲取cookie的時候這樣: (這里有個點很關(guān)鍵!!!,如果本地獲取不到,試著開一個服務,使用webstrom等自帶服務器的軟件打開即可)
var c = document.cookie;
alert( c );
此時我們看到的是dd=goudan,想要要獲取值我們還得對著一串字符串進行操作
var arr = document.cookie.match(new RegExp("(\\s|^)"+key+"=([^;]*)(;|$)"));
這里使用正則來匹配名,arr中即為設置dd的值 goudan。
3、(刪除)刪除cookie我們只需要設置一個負的時間,,并將值賦值為空,即為過去時間,就可以刪除cookie
var time = new Date( new Date().getTime() + -1*24*60*60*1000 );//這里設置時間為-1
document.cookie = "ddi=; expires="+time.toGMTString();
到這里,所有對cookie的操作就完了,但有時候我們并不想這么麻煩,下面就給出封裝的方法來更人性化的操作
/*
這里我們設置的時候直接傳入json格式的數(shù)據(jù)即可完成多個cookie的保存,時間單位按照天來計算。
獲取的時候我們只需要傳入需要獲取的名,(即前面的dd即可返回goudan)
刪除時傳入需要刪除的名(數(shù)組形式,如["dd"])即可完成刪除,此處需要刪除多個,可傳入數(shù)組的形式如["dd","name","age"],即可刪除dd對應的值
*/
//設置cookie
function setCookie(vJson , time){
var data = new Date( new Date().getTime() + time*24*60*60*1000 ).toGMTString();
for (var key in vJson)document.cookie = key+"="+vJson[key]+"; expires="+data;
}
//獲取cookie
function getCookie(key){
var arr = document.cookie.match(new RegExp("(\\s|^)"+key+"=([^;]*)(;|$)"));
return arr?arr[2]:"";
}
//移除cookie
function removeCookie(akey){
var arr = akey;
var json = {};
var length = arr.length;
for(var i = 0; i<arr.length;i++)json[akey[i]] = "";
setCookie(json , -1);
}