操作cookie

获取cookie

export function getCookie(name: string) {

    let strCookie = document.cookie; // 获取cookie字符串

    let arrCookie = strCookie.split('; '); // 分割

    // 遍历匹配

    for (let i = 0; i < arrCookie.length; i++) {

        let arr = arrCookie[i].split('=');

        if (arr[0] === name) {

            return arr[1];

        }

    }

    return '';

}

 

设置cookie

export function setCookie(cname, cvalue, exdays) {

    let d = new Date();

    d.setTime(d.getTime() + exdays * 24 * 60 * 60 * 1000);

    let expires = 'expires=' + d.toUTCString();

    document.cookie = cname + '=' + cvalue + '; ' + expires;

}

在设置cookie时不能使用特殊字符,如在设置cookie的path时,路径中有#,cookie就会失效

清除指定域名cookie 若不指定则清除当前域名下指定cookie

export function clearCookie(name) {

    const exp = new Date();

    exp.setTime(exp.getTime() - 1);

    const cval = getCookie(name);

    if (cval != null) {

        document.cookie = name + '=' + cval + ';path=/;domain=' + q1_domain + ';expires=' + exp.toUTCString();

    }

}

 

清除指定域名下所有cookie 若不指定则清除当前域名下所有cookie

// 清除所有cookie函数

export function clearAllCookie() {

    let date = new Date();

    date.setTime(date.getTime() - 10000);

    let keys = document.cookie.match(/[^ =;]+(?=\=)/g); ​// eslint-disable-line

    if (keys) {

        for (let i = keys.length; i--;) {

            document.cookie = keys[i] + '=0; expire=' + date.toUTCString() + '; path=/';

        }

    }

}

在使用过程中遇到报错:error Unnecessary escape character: \/ no-useless-escape

在代码后面加上// eslint-disable-line就可解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值