// 方法 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();}