Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将cookie解析/转换为JSON格式_Javascript - Fatal编程技术网

Javascript 将cookie解析/转换为JSON格式

Javascript 将cookie解析/转换为JSON格式,javascript,Javascript,我们是否有javascript库或正则表达式来解析/转换cookie为JSON格式 有些曲奇饼是这样的: cookie=referer=example.com/post?id=22;bcomID=8075; subreturn=example&fuzzy=true&ct=null&autobounce=true; JSESSIONID=6D20570E1EB; mbox=session 您可以尝试以下方法: var cookie=“referer=example.co

我们是否有javascript库或正则表达式来解析/转换cookie为JSON格式

有些曲奇饼是这样的:

cookie=referer=example.com/post?id=22;bcomID=8075; subreturn=example&fuzzy=true&ct=null&autobounce=true; JSESSIONID=6D20570E1EB; mbox=session
您可以尝试以下方法:

var cookie=“referer=example.com/post?id=22;bcomID=8075;subreturn=example&fuzzy=true&ct=null&autobounce=true;JSESSIONID=6D20570E1EB;mbox=session”;
var输出={};
cookie.split(/\s*;\s*/).forEach(函数(对){
pair=pair.split(/\s*=\s*/);
输出[pair[0]]=pair.splice(1.join('=');
});
var json=json.stringify(输出,null,4);

log(json)这里有一个稍微不同的方法,可以提取所有cookie(名称、值)对。注意测试用例。大多数可用的cookie解析器将无法正确解析此字符串

函数提取cookies(cookieStr){
返回cookieStr
.match(/(^|)(?cookie.split('=').map(v=>v.trim())
.filter(v=>v[0]。长度(&v[1]。长度)
.reduce((生成器,cur)=>{
生成器[cur[0]]=cur[1]
返回生成器
}, {})
}
var testCase='.\uu cfduid=da48fc97c9ea6147d5534503f5337db8215343165;expires=Thu,19-8-14:26:05 GMT;path=/;domain=.foobar.com;HttpOnly,XSRF-TOKEN=eyjpdii6imxjfz013qvrixc9muzfmxc9um2nzqt09iwidmfwwwwwuioj5z2v2v2vjrullpkq0c0c0c0vwwwwwwwwwwwwwwwwwwwwzzzvzzwzjjjzzzzzzjjjjjjzzz1wzzzzjjjjjjjzzzzzzzzl3m9mzzzjjjjjjjjjzzzzzzzzzME4YZEWYTY5ZGI5NTYNWYZTBMM2Q0YTLHZGE3MZK2MZYYMMI1NGZIYWFMNJBLMJGXMTZZZZFKOG3N2UXIN0%3D;到期日=星期三,2018年8月15日16:26:05 GMT;最大年龄=7200;路径=/,最大有效期=EYJPDIIkP25CKE5KRFO4LFOC0xXVUZR2C9PSISINZHVLIJOIKZRKZRKZFJLME2WGJ1VMF2ZHJJYDZYDZYWWWWZYZYZYWZYZYZYZYZYZYZZYW0WWZYZYZYZYZZYZZYZZYZZZZZYZYW0W0WZYZZZZYZYZYZwfjijoyizg1ogy3mgy4ntezmmjly2e3mjhlogm5ntm4zmy1mjdlyjc4yjiyotqyodfyijdlndcymzy3ntqzngrkytu3mij9;到期日=2018年8月15日星期三格林威治标准时间16:26:05;最大年龄=7200;路径=/;仅httponly';

console.log(提取cookies(testCase))
似乎在未过期的情况下无法工作“io=t8ta2obl0xv8mrnaaaa;“+”connect.sid=s%3Ao_AhA1ck602RHpublpjxueZq18655BDE.1gbnz19vrz6qv%2f2txmouplh9zwtczfcmjlwnpv4rfyw”只有第一个被检测到我想我发布这段代码是为了解析响应cookies而不是请求cookies。这两个的格式不同。有请求Cookie中没有过期日期。分隔符是分号而不是逗号