Javascript读取cookie函数代码
Javascript读取cookie函数代码
发布时间:2016-12-30 来源:查字典编辑
摘要:用法:一、设置cookie复制代码代码如下:varcookie=newJSCookie();//普通设置cookie.SetCookie("...

用法:

一、设置cookie

复制代码 代码如下:

var cookie = new JSCookie();

// 普通设置

cookie .SetCookie("key1","val1");

// 过期时间为一年

var expire_time = new Date();

expire_time.setFullYear(expire_time.getFullYear() + 1);

cookie .SetCookie("key2","val2",expire_time);

// 设置域及路径,带过期时间

cookie .SetCookie("key3","val3",expire_time,".cnblogs.com","/");

// 设置带子键的cookie,子键分别是k1,k2,k3

cookie .SetCookie("key4","k1=1&k2=2&k3=3");

二、读取cookie

复制代码 代码如下:

// 简单获取

cookie .GetCookie("key1");

cookie .GetCookie("key2");

cookie .GetCookie("key3");

cookie .GetCookie("key4");

// 获取key4的子键k1值

cookie .GetChild("key4","k1");

三、删除

复制代码 代码如下:

cookie .Expire("key1");

cookie .Expire("key2");

cookie .Expire("key3");

cookie .Expire("key4");

示例:

复制代码 代码如下:

<script type="text/javascript">

String.prototype.Trim = function()

{

return this.replace(/^s+/g,"").replace(/s+$/g,"");

}

function JSCookie()

{

this.GetCookie = function(key)

{

var cookie = document.cookie;

var cookieArray = cookie.split(';');

var getvalue = "";

for(var i = 0;i<cookieArray.length;i++)

{

if(cookieArray[i].Trim().substr(0,key.length) == key)

{

getvalue = cookieArray[i].Trim().substr(key.length + 1);

break;

}

}

return getvalue;

};

this.GetChild = function(cookiekey,childkey)

{

var child = this.GetCookie(cookiekey);

var childs = child.split('&');

var getvalue = "";

for(var i = 0;i < childs.length;i++)

{

if(childs[i].Trim().substr(0,childkey.length) == childkey)

{

getvalue = childs[i].Trim().substr(childkey.length + 1);

break;

}

}

return getvalue;

};

this.SetCookie = function(key,value,expire,domain,path)

{

var cookie = "";

if(key != null && value != null)

cookie += key + "=" + value + ";";

if(expire != null)

cookie += "expires=" + expire.toGMTString() + ";";

if(domain != null)

cookie += "domain=" + domain + ";";

if(path != null)

cookie += "path=" + path + ";";

document.cookie = cookie;

};

this.Expire = function(key)

{

expire_time = new Date();

expire_time.setFullYear(expire_time.getFullYear() - 1);

var cookie = " " + key + "=e;expires=" + expire_time + ";"

document.cookie = cookie;

}

}

</script>

用正则的方法读取cookie值

由于asp的cookie是经过url编码的,所以读之前要unescape一下。

下面是我用正则的方法取cookie,包括单值和多值:

复制代码 代码如下:

/**************************************************

参数说明:

sMainName Cookie名

sSubName Cookie子键名,留空表示单值Cookie

**************************************************/

function GetCookie(sMainName, sSubName)

{

var re = new RegExp((sSubName ? sMainName + "=(?:.*?&)*?" + sSubName + "=([^&;$]*)" : sMainName + "=([^;$]*)"),"i");

return re.test(unescape(document.cookie)) ? RegExp["$1"] : "";

}

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Javascript教程学习
热门Javascript教程学习
编程开发子分类