Какой самый короткий, точный и совместимый с кроссбраузерностью метод чтения файлов cookie в JavaScript?
Очень часто, при создании автономных сценариев (где у меня не может быть никаких внешних зависимостей) я обнаружил, что добавляю функцию для чтения файлов cookie и обычно использую QuirksMode.org readCookie ()
method (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;
}
Примечание , это не соревнование «Code Golf»: я на законных основаниях заинтересован в уменьшении размера моей функции readCookie и в обеспечении правильности решения, которое у меня есть.