/**
* Cookie向相关操作
*/
export default {
/**
* 这是有设定过期时间的使用示例:
* @param str s20是代表20秒 h是指小时,如12小时则是:h12 d是天数,30天则:d30
* @returns {number}
*/
getsec(str) {
const str1 = str.substring(1, str.length) * 1
const str2 = str.substring(0, 1)
if (str2 === 's') {
return str1 * 1000
} else if (str2 === 'h') {
return str1 * 60 * 60 * 1000
} else if (str2 === 'd') {
return str1 * 24 * 60 * 60 * 1000
}
},
/**
*保存登陆用户信息到cookie
* @param name cookie名称
* @param value cookie值
* @param time 这是有设定过期时间的使用示例:s20是代表20秒 h是指小时,如12小时则是:h12 d是天数,30天则:d30
*/
set(name, value, time) {
const strsec = this.getsec(time)
const exp = new Date()
exp.setTime(exp.getTime() + strsec)
document.cookie = name + '=' + escape(value) + ';expires=' + exp.toUTCString()
},
/**
* 获取cookie
* @param name cookie名称
* @returns cookie的值
*/
get(name) {
let arr = []
const reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)')
if (document.cookie.match(reg)) {
arr = document.cookie.match(reg)
return unescape(arr[2])
} else {
return null
}
},
/**
* 删除cookie中的用户登陆信息
* @param name cookie名字
* @return {undefined} 无返回值
*/
remove(name) {
const exp = new Date()
exp.setTime(exp.getTime() - 1)
const cval = this.get(name)
if (cval != null) {
// 这里删除操作其实是将expires过期时间设置为当前时间,使cookie立即过期;
// 不建议使用 将 name值设置为''的方式,会有坑
document.cookie = name + '=' + cval + ';expires=' + exp.toUTCString()
}
}
}
js操作cookie
最新推荐文章于 2023-08-07 12:03:55 发布