1+ // возвращает cookie с именем name, если есть, если нет, то undefined
2+ function getCookie ( name ) {
3+ var matches = document . cookie . match ( new RegExp (
4+ "(?:^|; )" + name . replace ( / ( [ \. $ ? * | { } \( \) \[ \] \\ \/ \+ ^ ] ) / g, '\\$1' ) + "=([^;]*)"
5+ ) ) ;
6+ return matches ? decodeURIComponent ( matches [ 1 ] ) : undefined ;
7+ }
8+
9+ // устанавливает cookie с именем name и значением value
10+ // options - объект с свойствами cookie (expires, path, domain, secure)
11+ function setCookie ( name , value , options ) {
12+ options = options || { } ;
13+
14+ var expires = options . expires ;
15+
16+ if ( typeof expires == "number" && expires ) {
17+ var d = new Date ( ) ;
18+ d . setTime ( d . getTime ( ) + expires * 1000 ) ;
19+ expires = options . expires = d ;
20+ }
21+ if ( expires && expires . toUTCString ) {
22+ options . expires = expires . toUTCString ( ) ;
23+ }
24+
25+ value = encodeURIComponent ( value ) ;
26+
27+ var updatedCookie = name + "=" + value ;
28+
29+ for ( var propName in options ) {
30+ updatedCookie += "; " + propName ;
31+ var propValue = options [ propName ] ;
32+ if ( propValue !== true ) {
33+ updatedCookie += "=" + propValue ;
34+ }
35+ }
36+
37+ document . cookie = updatedCookie ;
38+ }
39+
40+ // удаляет cookie с именем name
41+ function deleteCookie ( name ) {
42+ setCookie ( name , "" , {
43+ expires : - 1
44+ } )
45+ }
0 commit comments