【问题标题】:Javascript Cookie remove or delete with regex (Regular Expression)Javascript Cookie 使用正则表达式(正则表达式)删除或删除
【发布时间】:2019-02-16 16:05:52
【问题描述】:

这是一个我想用 javascript Regex(正则表达式)删除或删除以“搜索”开头的最后 5 个 cookie 我该怎么做的网站

普通的document.cookie函数没有返回Cookie

我尝试了很多技巧和代码,但都不起作用...请帮助

【问题讨论】:

    标签: javascript regex cookies session-cookies


    【解决方案1】:

    你可以试试这个:

        function deleteCookie(name) {
            document.cookie = name + "=; expires=" + (new Date(0)).toUTCString() + ";";
        };
        function findCookies(name) {
            var r=[];
            document.cookie.replace(new RegExp("("+name + "[^= ]*) *(?=\=)", "g"), function(a, b, ix){if(/[ ;]/.test(document.cookie.substr(ix-1, 1))) r.push(a.trim());})
            return r;
        };
    

    用法:

    findCookies("search").forEach(function(fullName){deleteCookie(fullName);});
    

    或者使用这个,如果你只需要其中的 5 个(从最后一个开始):

    findCookies("search").slice(-5).forEach(function(fullName){deleteCookie(fullName);});
    

    【讨论】:

    • 普通的“document.cookie”函数甚至没有返回Cookie。它存在于“document.cookie”函数返回的数组中
    【解决方案2】:
    //to get all the cookies 
    var cookiesArray = document.cookie.split(";"); <br>
    //loop through the array and check if the cookie name is what we want
    for(var i = 0; i < cookiesArray.length; i++)
    {
        //remove if any extra space
        var cookie = cookiesArray[i].trim();
        //to get the cookie name
        var cookieName = cookie.split("=")[0];
    
        // If the prefix of the cookie's name matches the one specified(i.e search), remove it
        if(cookieName.indexOf("search") === 0) {
    
            // Remove the cookie
            document.cookie = cookieName + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT;";
        }
    }
    

    【讨论】:

    • 普通的“document.cookie”函数甚至不会返回 Cookie。它存在于“document.cookie”函数返回的数组中
    猜你喜欢
    • 2011-12-23
    • 1970-01-01
    • 2011-11-01
    • 1970-01-01
    • 2016-04-18
    • 1970-01-01
    • 2012-10-18
    • 2019-08-20
    • 1970-01-01
    相关资源
    最近更新 更多