如何检查 Cookie 是否存在?
2022-08-30 05:04:48
检查 Cookie 是否存在的好方法是什么?
条件:
在以下情况下存在 Cookie:
cookie1=;cookie1=345534;
//or
cookie1=345534;cookie1=;
//or
cookie1=345534;
如果出现以下情况,则 Cookie 不存在
cookie=;
//or
<blank>
检查 Cookie 是否存在的好方法是什么?
条件:
在以下情况下存在 Cookie:
cookie1=;cookie1=345534;
//or
cookie1=345534;cookie1=;
//or
cookie1=345534;
如果出现以下情况,则 Cookie 不存在
cookie=;
//or
<blank>
您可以使用所需 Cookie 的名称调用函数 getCookie,然后检查它是否为 = null。
function getCookie(name) {
var dc = document.cookie;
var prefix = name + "=";
var begin = dc.indexOf("; " + prefix);
if (begin == -1) {
begin = dc.indexOf(prefix);
if (begin != 0) return null;
}
else
{
begin += 2;
var end = document.cookie.indexOf(";", begin);
if (end == -1) {
end = dc.length;
}
}
// because unescape has been deprecated, replaced with decodeURI
//return unescape(dc.substring(begin + prefix.length, end));
return decodeURI(dc.substring(begin + prefix.length, end));
}
function doSomething() {
var myCookie = getCookie("MyCookie");
if (myCookie == null) {
// do cookie doesn't exist stuff;
}
else {
// do cookie exists stuff
}
}
我制作了一个替代的非jQuery版本:
document.cookie.match(/^(.*;)?\s*MyCookie\s*=\s*[^;]+(.*)?$/)
它只测试饼干的存在。更复杂的版本也可以返回 cookie 值:
value_or_null = (document.cookie.match(/^(?:.*;)?\s*MyCookie\s*=\s*([^;]+)(?:.*)?$/)||[,null])[1]
将您的 Cookie 名称代替 。MyCookie