---
title: 'Cookies (set, get, remove) js'
url: 'https://www.zencod.ru/gists/js-cookies-set-get-remove'
markdown: 'https://www.zencod.ru/gists/js-cookies-set-get-remove.md'
date: '2021-09-06'
description: 'Набор js функций для получения, установки значения и удаления кук /** * Получение cookie * * @param {String} name название cookie * @returns cookie если есть или undefined */ function getCookie(name) { const matches = document.cookie.match(new RegExp( "(?:^|; )" + name.replace(/([…'
taxonomy:
  tag:
    - js
---

#  Cookies (set, get, remove) js 

 06.09.2021 

  Содержание статьи 

 Набор js функций для получения, установки значения и удаления кук

```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 })
}
```

За основу [взят код](https://gist.github.com/akaramires/7577298).

---

## Navigation

- Parent: [Gists](https://www.zencod.ru/gists.md)
- Previous: [Grav CMS. ERROR: Peer certificate](https://www.zencod.ru/gists/grav-cms-error-peer-certificate.md)
- Next: [Настройка времени жизни сессии в битрикс](https://www.zencod.ru/gists/bitrix-session-maxlifetime.md)
