【发布时间】:2019-02-16 16:05:52
【问题描述】:
这是一个我想用 javascript Regex(正则表达式)删除或删除以“搜索”开头的最后 5 个 cookie 我该怎么做的网站
普通的document.cookie函数没有返回Cookie
我尝试了很多技巧和代码,但都不起作用...请帮助
【问题讨论】:
标签: javascript regex cookies session-cookies
这是一个我想用 javascript Regex(正则表达式)删除或删除以“搜索”开头的最后 5 个 cookie 我该怎么做的网站
普通的document.cookie函数没有返回Cookie
我尝试了很多技巧和代码,但都不起作用...请帮助
【问题讨论】:
标签: javascript regex cookies session-cookies
你可以试试这个:
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);});
【讨论】:
//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;";
}
}
【讨论】: