js:cookie设/取/删操作实现

3 篇文章 0 订阅
尽量的考量全面点;

_.cookie = function(name, how, val, expiresSec, domain, path, secure) {
    /* 取:_.cookie('g'||任意, 'name'); 删:_.cookie('d', 'name' */
    if ( (typeof path != 'string') || (path.indexOf('/') != 0)) path = '/';
    path = ' path=' + path + ';';
    domain = domain ? ' domain=.' + domain.replace(/^\s*\./, '') + ';': '';
    secure = secure ? ' secure;' : '';
    
    switch(('' + how).toLowerCase()) {
        case 's'://设置
            val = encodeURIComponent(val);//注意配合get的decode,且escape php不能正确解码中文
            expiresSec = parseInt(expiresSec);
            expiresSec = isNaN(expiresSec) ? '' : ' expires=' + new Date(new Date().getTime() + expiresSec * 1000).toGMTString() + ';';
            return document.cookie = name + '=' +val+ ';' +path + expiresSec +domain+ secure;
            break;
        case 'd'://删除
            return document.cookie = name + '=0; expires=Fri, 1 Dec 1970 0:0:0 GMT; ' +path +domain+ secure;
            break;
        default://获取
            if ( ('string' != typeof name) || ( (name = name.replace(/\W/g, '')) == '')) return document.cookie;
            var re = new RegExp('(?:^|\\W)' + name + "\\=([^\\=;]*)").exec(document.cookie);
            return  re ? decodeURIComponent(re[1]) : '';//php边使用了urlencode保存编码,必须对应使用
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值