【发布时间】:2014-03-05 02:18:16
【问题描述】:
我想获取cookie中“key”的“value”,cookie的格式是:
key1:value1;key2:value2;……keyn:valuen
因为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解析器? - 有更好的方法吗?
【问题讨论】:
-
是的,有一个更好的方法:一次将整个 cookie 解析成一个对象,然后从中取出属性。
-
代码中的
=应该是:吗? -
对不起,我错了,cookie格式是:
-
key1=value1;key2=value2;......keyn=valuen
标签: javascript regex