由于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"] : "";
}
function setCookie(cookie_domain,name,val,days){
var exp = new Date();
exp.setTime(exp.getTime() + days*86400000);
document.cookie = name + '=' + escape(val) + ';expires=' + exp.toGMTString()+ ';path=/';
}
function getCookie(cookie_name){
var arr, reg=new RegExp("(^| )" + cookie_name + "=([^;]*)(;|$)");
if(arr = document.cookie.match(reg)){
return unescape(arr[2]);
}
return null;
}