Какая самая короткая функция для чтения cookie по имени в JavaScript?

Какой самый короткий, точный и совместимый с кроссбраузерностью метод чтения файлов 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 и в обеспечении правильности решения, которое у меня есть.

180
задан Ciro Santilli 新疆改造中心法轮功六四事件 14 May 2016 в 23:16
поделиться