javascript 用正则表达式取cookie值,请帮解释下代码?解决思路

javascript 用正则表达式取cookie值,请帮解释下代码?

  function getCookie(name)//取cookies函数        
        {
            var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
            if(arr != null) return unescape(arr[2]); 
            return null;
        }


请问为什么返回值从 arr[2]去取?
------解决思路----------------------
str.match(/\d+/g)这样写就可以,加g不加g的区别是
加上g表示匹配全文,找出所有匹配搭配的项目。
不加g表示匹配全文,但只找出第一次比配到的值。
------解决思路----------------------
正则() 表示匹配组

document.cookie.match(new RegExp("(^
------解决思路----------------------
 )"+name+"=([^;]*)(;
------解决思路----------------------
$)"));

(^
------解决思路----------------------
 ) 第一组 [1]
([^;]*)  第二组 [2]

[0] 是匹配到的字符串