JavaScript中判断Cookie是否存在及完整增删改查操作指南
作者:纸飞机时间:2026-10-27 17:17:53浏览:232
本文详解如何在JavaScript中正确判断Cookie是否存在,避免简单字符串比较的误区。通过document.cookie.indexOf方法检测特定Cookie。同时提供完整的JS Cookie封装函数,涵盖获取、添加(支持过期时间设置)及删除Cookie的实用代码,无需后端介入即可在前端灵活管理用户状态。
判断Cookie是否存在的方法
在实际开发中,我们常需利用Cookie保存用户名以维持登录状态。然而,如何准确判断该用户的Cookie是否有效存在?直接判断变量不等于空字符串并非正确做法。
具体实现代码示例如下:
a=getCookie("username3");
c_start=document.cookie.indexOf("username3=");
if(c_start == -1){
$("#login_form").show();
$("#logined").hide();
}
else{
$("#login_form").hide();
$("#logined").show();
$("#ustr").html(a);
}正确的做法是:检测名为username3的Cookie是否存在,可通过document.cookie.indexOf("username3=")实现。若返回值等于-1,则表明该Cookie不存在。
JavaScript保存与删除Cookie的完整操作
JavaScript保存与删除Cookie的操作方法
使用JavaScript进行Cookie的保存和删除操作十分便捷,无需修改后端程序,调整起来也更为容易。以下提供一套较为完整的JS Cookie操作方案:
具体代码如下:
<script language=javascript>
//获得coolie 的值
function cookie(name){
var cookieArray=document.cookie.split("; "); //得到分割的cookie名值对
var cookie=new Object();
for (var i=0;i<cookieArray.length;i++){
var arr=cookieArray[i].split("="); //将名和值分开
if(arr[0]==name)return unescape(arr[1]); //如果是指定的cookie,则返回它的值
}
return "";
}
function delCookie(name)//删除cookie
{
document.cookie = name+"=;expires="+(new Date(0)).toGMTString();
}
function getCookie(objName){//获取指定名称的cookie的值
var arrStr = document.cookie.split("; ");
for(var i = 0;i < arrStr.length;i ++){
var temp = arrStr[i].split("=");
if(temp[0] == objName) return unescape(temp[1]);
}
}
function addCookie(objName,objValue,objHours){ //添加cookie
var str = objName + "=" + escape(objValue);
if(objHours > 0){ //为时不设定过期时间,浏览器关闭时cookie自动消失
var date = new Date();
var ms = objHours*3600*1000;
date.setTime(date.getTime() + ms);
str += "; expires=" + date.toGMTString();
}
document.cookie = str;
}
function SetCookie(name,value)//两个参数,一个是cookie的名子,一个是值
{
var Days = 30; //此 cookie 将被保存 30 天
var exp = new Date(); //new Date("December 31, 9998");
exp.setTime(exp.getTime() + Days*24*60*60*1000);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}
function getCookie(name)//取cookies函数
{
var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
if(arr != null) return unescape(arr[2]); return null;
}
function delCookie(name)//删除cookie
{
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval=getCookie(name);
if(cval!=null) document.cookie= name + "="+cval+";expires="+exp.toGMTString();
}
</script>作者最新文章
JS动态构建复杂嵌套JSON对象的方法
2026-11-05 15:41:52
JS负数取余为什么是负数?详解余数与模运算区别
2026-11-05 13:34:41
JS 解压出现乱码或报错怎么解决?
2026-11-05 12:32:38
JS 中 startsWith、indexOf 与正则判断字符串前缀的对比
2026-11-04 22:19:43
JS解析Excel后怎么将数据转换为JSON格式
2026-11-04 20:58:28
