在JavaScript中按名称读取cookie的最短函数是什么?
在 JavaScript 中读取 Cookie 的最短、准确和跨浏览器兼容的方法是什么?
很多时候,在构建独立脚本时(我不能有任何外部依赖项),我发现自己添加了一个用于读取cookie的函数,并且通常回退到 QuirksMode.org readCookie()
方法(280字节,216分钟)。
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
它完成了这项工作,但它很丑陋,每次都会增加相当多的膨胀。
jQuery.cookie使用类似如下的方法(修改,165字节,125分钟):
function read_cookie(key)
{
var result;
return (result = new RegExp('(?:^|; )' + encodeURIComponent(key) + '=([^;]*)').exec(document.cookie)) ? (result[1]) : null;
}
请注意,这不是一场“代码高尔夫”竞赛:我对减小readCookie函数的大小以及确保我拥有的解决方案有效感兴趣。