注册 登录
编程论坛 ASP技术论坛

js的cookies

lele2007 发布于 2011-05-03 22:15, 702 次点击
程序代码:
//设置cookie  
function setCookie(name,value,leleTime)
{
    leleTime = leleTime || 0;   //leleTime有值就直接赋值,没有为0。  
    var expires = "";  
    if (leleTime != 0 )
    {
        //设置cookie生存时间  
        var date = new Date();
        date.setTime(date.getTime()+(leleTime*24*3600*1000));  
        expires = ";expires="+date.toGMTString();
    }  
    document.cookie = name+"="+escape(value)+expires+";path=/";   //转码并赋值  
}
//获取指定Cookie名字的值
function getCookie(cookieName)
{
    var arr = document.cookie.match(new RegExp("(^| )"+cookieName+"=([^;]*)(;|$)"));
    if(arr != null) return unescape(arr[2]); return null;
}

//删除Cookie
function delCookie(cookieName)
{
    var exp = new Date();exp.setTime(exp.getTime() - 1);var cookieId = getCookie(cookieName);
    if(cookieId!=null) document.cookie = cookieName + "="+cookieId+";expires="+exp.toGMTString();
}


上面这段js是设置Cookies的功能。。但是asp里只能这样设置:response.cookies("lele") = "内容",如果asp里设置cookies时。。使用:response.cookies("lele")("lele2007") = "内容"

上面那段js获取值时就失效了。。。
//获取指定Cookie名字的值
function getCookie(cookieName)
{
    var arr = document.cookie.match(new RegExp(cookieName+"=([^&]*)(&|;|$)"));
    if(arr != null)return decodeURIComponent(arr[1]);return null;
}

用这个改了正则还是有时获取不到。。
response.cookies("lele")("lele2007") = "内容"  

问下,用这种形式设置的cookies  在js客户端应该如何获取cookies和删除及设置啊?
3 回复
#2
dzt00012011-05-04 09:14
含子键的COOKIES的形式都是这样的:子键名1=子键内容1&子键名2=子键内容2
下面是读取子键的一个函数
//sMainName Cookie名
//sSubName Cookie子键名,留空表示单值Cookie
function GetCookie(sMainName, sSubName){
var re = new RegExp((sSubName ? sMainName + "=(.*?&)*?" + sSubName + "=(.*?)(&|;)" : sMainName + "=(.*?);"), "i");
return re.test(unescape(document.cookie)) ? (sSubName ? RegExp["$2"] : RegExp["$1"]) : "";
}


要用JS修改子键的应该也可以,要自己写代码,我能力太差不会写,也没搜索到
#3
DanYang_dan2011-05-04 13:41



好吧 .. 我承认我不会..
#4
lele20072011-05-06 22:00
回复 2楼 dzt0001
谢谢。
1