js获取cookie值 根据cookie名称获取值 删除设置cookie
😂 这篇文章最后更新于1552天前,您需要注意相关的内容是否还可用。
//方法1 //存在问题:如果cookie中存在 aaaname=aa;name=bb 获取name的值就会出现错误 function getCookie(c_name) { if (document.cookie.length > 0) { //判断cookie是否存在 //获取cookie名称加=的索引值 var c_start = document.cookie.indexOf(c_name + "="); if (c_start != -1) { //说明这个cookie存在 //获取cookie名称对应值的开始索引值 c_start = c_start + c_name.length + 1 //从c_start位置开始找第一个分号的索引值,也就是cookie名称对应值的结束索引值 c_end = document.cookie.indexOf(";", c_start) //如果找不到,说明是cookie名称对应值的结束索引值就是cookie的长度 if (c_end == -1) c_end = document.cookie.length //unescape() 函数可对通过 escape() 编码的字符串进行解码 //获取cookie名称对应的值,并返回 return unescape(document.cookie.substring(c_start, c_end)) } } return "" //不存在返回空字符串 } //方法2 function getCookie2(name) { var strcookie = document.cookie; //获取cookie字符串 var arrcookie = strcookie.split("; "); //分割 //遍历匹配 for (var i = 0; i < arrcookie.length; i++) { var arr = arrcookie[i].split("="); if (arr[0] == name) { return arr[1]; } } return ""; } //方法3 function getCookie3(name) { //可以搜索RegExp和match进行学习 var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)"); if (arr = document.cookie.match(reg)) { return unescape(arr[2]); } else { return null; } } //写cookies function setCookie(name, value) { var Days = 30; var exp = new Date(); exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000); document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString(); } //写cookies设置过期时间 function setCookie(cname, cvalue, exdays) { var d = new Date(); d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000)); var expires = "expires=" + d.toUTCString(); document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; } //删除cookies function delCookie(name) { var exp = new Date(); exp.setTime(exp.getTime() - 1); var cval = getCookie(name); if (cval != null) document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString(); }
留言评论
暂无留言