设置与获取Cookie

时间:2023-03-08 20:30:02

自己编写的一个Cookie设置与获取函数,大家有什么感觉需要改进的地方,请告知与我,我一定虚心接受。

JavaScript - Code:

function setCookie(name,value,expires,domain,path,secure){
var result = '';
if(name && value){
result = name +'=' + encodeURIComponent(value)
}else{
alert('请输入正确的cookie名称与值')
return false;
}
if(expires){
var expires = expires.toLowerCase(),
firstWord = expires.slice(0,1),
lastWord = expires.slice(1,expires.length),
addValue = 0,
date = new Date(); if(!isNaN(lastWord)) addValue = parseInt(lastWord); switch(firstWord){
case 's':date.setSeconds(date.getSeconds()+addValue);break;
case 'm':date.setMinutes(date.getMinutes()+addValue);break;
case 'h':date.setHours(date.getHours()+addValue);break;
case 'd':date.setDate(date.getDate()+addValue);break;
case 'y':date.setFullYear(date.getFullYear()+addValue);break;
default:alert('时间参数错误,请检查!');
}
result += ';expires=' + date;
}
if(domain) result += ';domain=' + domain;
if(path) result += ';path=' + path;
if(secure) result += ';secure';
document.cookie = result;
} function getCookie(name){ if(name && RegExp("(^| )" + name + "=([^;]*)(;|$)").exec(document.cookie)) return RegExp.$2;
// (^| ) 不匹配第一个空格。
// ([^;]*) 只匹配除了;号之外的所有字符。
// (;|$) 匹配以;号或$为结尾的字符。
}

  

使用说明:

  * setCooke的参数必须按照顺序依次是:name,value,expires,domain,path,secure;

  * expires的值,其格式是:时间+数值。

    时间的前缀有:s (秒) 、m (分) 、h(时) 、d (天) 、y (年)。

    示例:s20、m30....