regexObject. test (String) на быстрее , чем строка. match (RegExp).
Сайт MDN описывает формат для document.cookie и содержит пример регулярного выражения для получения файла cookie (document.cookie.replace(/(?:(?:^|.*;\s*)test2\s*\=\s*([^;]*).*$)|^.*$/, "$1");
). Исходя из этого, я бы пошел на это:
/^(.*;)?\s*cookie1\s*=/.test(document.cookie);
Вопрос, кажется, требует решения, которое возвращает false, когда cookie установлен, но пусто. В этом случае:
/^(.*;)?\s*cookie1\s*=\s*[^;]/.test(document.cookie);
Тесты
function cookieExists(input) {return /^(.*;)?\s*cookie1\s*=/.test(input);}
function cookieExistsAndNotBlank(input) {return /^(.*;)?\s*cookie1\s*=\s*[^;]/.test(input);}
var testCases = ['cookie1=;cookie1=345534;', 'cookie1=345534;cookie1=;', 'cookie1=345534;', ' cookie1 = 345534; ', 'cookie1=;', 'cookie123=345534;', 'cookie=345534;', ''];
console.table(testCases.map(function(s){return {'Test String': s, 'cookieExists': cookieExists(s), 'cookieExistsAndNotBlank': cookieExistsAndNotBlank(s)}}));