js保存、获取、删除cookie的方法

这两天学习、写了些web客户端的js代码,下面总结下分享给大家,主要为js保存、获取cookie和js获取各种类型的控件值的方法:
1、js保存cookie


<script type="javascript">
        function setCookie(name,value){ //name为cookie的名称,value为name值
                var days = 10; //保存天数,可作为参数传进来
                var expires = new Date(); //建立日期变量

                //expires过期时间 = 当前时间 +过期时间(秒)
                expires.setTime(expires.getTime() + days * 30 * 24 * 60 * 60 * 1000); 

                //将值及过期时间一起保存至cookie中(需以GMT格式表示的时间字符串)
                var str = name + ‘=’ + value +’;expires=’ + expires.toGMTString(); 
                //var str = name + ‘=’ + escape(value) +’;expires=’ + expires.toGMTString(); 
                document.cookie = str;
        }
</script>


下面为通用版保存cookie


<script language="JavaScript" type="text/javascript"> 
<!– 
function addCookie(name,value,expireHours){ 
         var cookieString=name+"="+escape(value);          
         if(expireHours>0){ //判断是否设置过期时间
                var date=new Date(); 
                date.setTime(date.getTime+expireHours*3600*1000); 
                cookieString=cookieString+"; expire="+date.toGMTString(); 
         } 
         document.cookie=cookieString; 

//–> 
</script> 


蓝色部分解释:
        方法是用escape()函数进行编码,它能将一些特殊符号使用十六进制表示,例如空格将会编码为“20%”,从而可以存储于 cookie值中,而且使用此种方案还可以避免中文乱码的出现。
        例如: 
                document.cookie="str="+escape("I love js"); 
        相当于: 
                document.cookie="str=I%20love%20js"; 
        当使用escape()编码后,在取出值以后需要使用unescape()进行解码才能得到原来的cookie值
2、js获取cookie值
介绍两种方法:
a.常规的循环字符输出方法


function getCookie(name){//name为cookie名称
        var strcookie = document.cookie;//获取cookie字符串
        var arr = strcookie.split(‘;’); //分割cookie
        for(var i = 0;i<arr.length;i++){
                var arrStr = arr.split(‘=’); //对各个cookie进行分割
                if(arrStr[0] == name) return arrStr[1]; //判断是否存在cookie名称为name并输出
        }
        return ""; //返回
}


b.使用unescape获取cookie方法


function getCookie(name){
    var _password = document.getElementById(‘password’);
    var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)")); //通过正则表达式获取cookie为name的字符组
    if(arr!=null){
        return unescape(arr[2]); //输入返回
    }
    return ”;
}


3、删除cookie


<script language="JavaScript" type="text/javascript"> 
<!– 
//获取当前时间
var date=new Date(); 
//将date设置为过去的时间 

date.setTime(date.getTime()-10000); 
//将userId这个cookie删除 

document.cookie="userId=828; expire="+date.toGMTString(); 
//–> 
</script> 
<script language="JavaScript" type="text/javascript"> 
<!– 
function deleteCookie(name){ 
          var date=new Date(); 
          date.setTime(date.getTime()-10000); 
          document.cookie=name+"=v; expire="+date.toGMTString(); 

//–> 
</script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值