美文网首页
原生js根据name获取cookie的三种方法

原生js根据name获取cookie的三种方法

作者: who_are_you_ | 来源:发表于2020-06-08 17:41 被阅读0次

//方法1
//存在问题:如果cookie中存在 aaaname=aa;name=bb 获取name的值就会出现错误
function getCookie(c_name){
if (document.cookie.length>0){//判断cookie是否存在
//获取cookie名称加=的索引值
var c_start = document.cookie.indexOf(c_name + "=");
if (c_start!=-1){ //说明这个cookie存在
//获取cookie名称对应值的开始索引值
c_start=c_start + c_name.length+1
//从c_start位置开始找第一个分号的索引值,也就是cookie名称对应值的结束索引值
c_end=document.cookie.indexOf(";",c_start)
//如果找不到,说明是cookie名称对应值的结束索引值就是cookie的长度
if (c_end==-1) c_end=document.cookie.length
//unescape() 函数可对通过 escape() 编码的字符串进行解码
//获取cookie名称对应的值,并返回
return unescape(document.cookie.substring(c_start,c_end))
}
}
return "" //不存在返回空字符串
}

//方法2
function getCookie2(name){
var strcookie = document.cookie;//获取cookie字符串
var arrcookie = strcookie.split("; ");//分割
//遍历匹配
for ( var i = 0; i < arrcookie.length; i++) {
var arr = arrcookie[i].split("=");
if (arr[0] == name){
return arr[1];
}
}
return "";
}

//方法3
function getCookie3(name){
//可以搜索RegExp和match进行学习
var arr,reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
if (arr = document.cookie.match(reg)) {
return unescape(arr[2]);
} else {
return null;
}
}

相关文章

网友评论

      本文标题:原生js根据name获取cookie的三种方法

      本文链接:https://www.haomeiwen.com/subject/rnzrtktx.html