cookie的使用

从as到js,最开心的就是能直接用cookie了。今天研究了一下,记录如下:

//写入cookie
function setCookie (name,value) {
    var days = 30;//30天过期
    var exp = new Date();
    exp.setTime(exp.getTime() +days*24*60*60*1000);
    document.cookie = name +"="+ escape(value)+";expires=" +exp.toGMTString();
}
//读取cookie
function getCookie(name) {
    var arr;
    var reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
    if (arr=document.cookie.match(reg)) {
        return unescape(arr[2]);
    }else{
        return null;
    }
}
//删除cookie
function delCookie(name) {
    var exp = new Date();
    exp.setTime(exp.getTime()-1);
    var cval = getCookie(name);
    if (cval !=null) {                      
document.cookie=name+"="+cval+";expires="+exp.toGMTString(); } }

使用:

//设置
setCookie("name","jay");
//获取
getCookie("name");
//删除
delCookie("name");

 说明:

1. 每个cookie都是一个名/值对;可以把字符串赋值:document.cookie="UserId";

2. 在cookie 的名或值中不能使用分号(;)、逗号(,)、等号(=)以及空格。所以要使用escape来包裹要赋的值,使用十六进制来表示。

    然后读取的时候,再用unescape来解码,得到原来的值。

3. 如果要赋多个值,只能一个一个单独赋值。(资料里说可以用;(分号)来隔开,我测试不成功)

4. 可以设置路径path=/是网站根目录;例:document.cookie="userId=320; path=/";

5. 简单读取时,用split分隔成数组返回,再做操作。 

参考资料来源:http://www.jb51.net/article/14566.htm

原文地址:https://www.cnblogs.com/dragonwave/p/4735796.html