我想获取cookie中“key”的“值”,cookie的格式是:
KEY1:VALUE1; KEY2:VALUE2; ...... keyn:值N
因为JS不支持(?<=exp)
,所以我使用此函数来获取值:
function getCookieValue(key)
{
var cookie = document.cookie;
var filter = new RegExp(key+"=([^;]*)(;|$)");
return cookie.match(filter)[1];
}
结果是正确的,但我有一些问题:
cookie.match(filter)
,则匹配结果为key:value;,value
。正则表达式匹配两个结果。为什么?cookie.match(filter)[1]
,返回的数组是否依赖于JS解析器?答案 0 :(得分:2)
如果我使用cookie.match(filter),则匹配结果为“key:value;,value”。 rex匹配两个结果,为什么?
来自String#match
函数的结果值是一个数组,其中第一个数组索引保存完整匹配,数组中的后续元素保存匹配的组。
对于cookie.match(filter)[1],返回的数组是否依赖于JS解析器?
不,这不依赖于特定的JS解析器,该行为是标准的。
有更好的方法吗?
我确信那里有cookie解析器库。