Набор js функций для получения, установки значения и удаления кук
/**
* Получение cookie
*
* @param {String} name название cookie
* @returns cookie если есть или undefined
*/
function getCookie(name) {
const matches = document.cookie.match(new RegExp(
"(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
))
return matches ? decodeURIComponent(matches[1]) : undefined
}
/**
* Уcтанавливает значение cookie
*
* @param {String} name название cookie
* @param {String} value значение cookie
* @param {Object} props Объект с дополнительными свойствами для установки cookie:
* @param {Number|Date|Null} props.expires Время истечения cookie. Интерпретируется по-разному, в зависимости от типа:
* Если число - количество секунд до истечения.
* Если объект типа Date - точная дата истечения.
* Если expires в прошлом, то cookie будет удалено.
* Если expires отсутствует или равно 0, то cookie будет установлено как сессионное и исчезнет при закрытии браузера.
* @param {String} props.path Путь для cookie.
* @param {String} props.domain Домен для cookie.
* @param {String} props.secure Пересылать cookie только по защищенному соединению.
*/
function setCookie(name, value, props) {
props = props || {}
let exp = props.expires
if (typeof exp == "number" && exp) {
const d = new Date()
d.setTime(d.getTime() + exp * 1000)
exp = props.expires = d
}
if (exp && exp.toUTCString) { props.expires = exp.toUTCString() }
value = encodeURIComponent(value)
let updatedCookie = name + "=" + value
for (const propName in props) {
updatedCookie += "; " + propName
const propValue = props[propName]
if (propValue !== true) { updatedCookie += "=" + propValue }
}
document.cookie = updatedCookie
}
/**
* Удаление cookie
*
* @param {String} name название cookie
*/
function deleteCookie(name) {
setCookie(name, null, { expires: -1 })
}
За основу взят код.