JS保存和删除cookie操作 判断cookie是否存在

前端技术 2023/09/06 JavaScript

有时我们需要用cookie保存用户名,记录登录状态,如何正确判断该机用户cookie是否存在呢?不能简单使用a!=”这样的写法。

复制代码 代码如下:

 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,表示不存在。

JS保存、删除cookie操作

用js保存、删除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>

本文地址:https://www.stayed.cn/item/17374

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。