Cookies.js
2.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
/* eslint-disable */
'use strict'
function getCookiesObj() {
var cookies = {}
if (document.cookie) {
var objs = document.cookie.split('; ')
for (var i in objs) {
var index = objs[i].indexOf('=')
var key = objs[i].replace(/^\s/, '').substr(0, index)
var value = objs[i].substr(index + 1, objs[i].length)
cookies[key] = value
}
}
return cookies
}
const Cookies = {
get(sKey) {
return decodeURIComponent(document.cookie
.replace(
new RegExp("(?:(?:^|.*;)\\s*" +
encodeURIComponent(sKey)
.replace(/[-.+*]/g, "\\$&") +
"\\s*\\=\\s*([^;]*).*$)|^.*$"
),
"$1"
)
) || null
},
set(sKey, sValue, vEnd, sPath, sDomain, bSecure) {
if (!sKey || /^(?:expires|max\-age|path|domain|secure)$/i.test(sKey)) { return false }
var sExpires = ""
if (vEnd) {
switch (vEnd.constructor) {
case Number:
sExpires = vEnd === Infinity
? "; expires=Fri, 31 Dec 9999 23:59:59 GMT"
: "; max-age=" + vEnd
break
case String:
sExpires = "; expires=" + vEnd
break
case Date:
sExpires = "; expires=" + vEnd.toUTCString()
break
}
}
document.cookie = encodeURIComponent(sKey) +
"=" +
encodeURIComponent(sValue) +
sExpires +
(sDomain ? "; domain=" + sDomain : "") +
(sPath ? "; path=" + sPath : "") +
(bSecure ? "; secure" : "")
return true
},
remove(sKey, sPath, sDomain) {
if (!sKey || !this.hasItem(sKey)) { return false }
document.cookie = encodeURIComponent(sKey) +
"=; expires=Thu, 01 Jan 1970 00:00:00 GMT" +
(sDomain ? "; domain=" + sDomain : "") +
(sPath ? "; path=" + sPath : "")
return true
},
has(sKey) {
return (
new RegExp(
"(?:^|;\\s*)" +
encodeURIComponent(sKey).replace(/[-.+*]/g, "\\$&") +
"\\s*\\="
)
).test(document.cookie)
},
keys() {
var aKeys = document.cookie
.replace(/((?:^|\s*;)[^\=]+)(?=;|$)|^\s*|\s*(?:\=[^;]*)?(?:\1|$)/g, "")
.split(/\s*(?:\=[^;]*)?;\s*/)
for (var nIdx = 0; nIdx < aKeys.length; nIdx++) {
aKeys[nIdx] = decodeURIComponent(aKeys[nIdx])
}
return aKeys
},
clear() {
const cookies = getCookiesObj()
for (var k = 0; k < cookies.length; k++) {
document.cookie = cookies[k] + '=;max-age=0'
}
}
}
export default Cookies