日期:2014-05-16  浏览次数:20371 次

以下是我在网上找到的一个关于读取Cookie的js代码,是用正则写的,求助
代码如下:  
//取cookies函数  
function   getCookie(name)...{  
var   arr   =   document.cookie.match(new   RegExp( "(^|   ) "+name+ "=([^;]*)(;|$) "));  
if(arr   !=   null)   ...{  
return   unescape(arr[2]);  
}else...{  
return   null;  
}  
}  

这句话我不完全明白:  
RegExp( "(^|   ) "+name+ "=([^;]*)(;|$) ")  

希望有高手能帮我说明白吗?  

假如cookies为:  
username=31354a22825;pwd=123;sex=1  


正则我是知道的。可能学的不深,一时对这表达示理解不够。  
我的理解是:  
"(^|   ) "   +   name  
是必须以name开头或者以空格开头  
必须以name开头要能是对应第一个cookies名称  
以空格开头可能是对应后面的cookies名称  
([^;]*)(;|$)这个意思我就有些模糊了,一时想不出个所以然来。

------解决方案--------------------
"(^| ) " 以字符串起始或者空格 开头
([^;]*) 非分号的字符串
(;|$) ") 以分号或者字符串结束点为 终点