我将一个cookie拆分为一个数组:
var cooks = document.cookie.split(';');
[dogs=bla, cats=sdfgh, cabbages=kjhgfdfg]
如果我想找到"cats=sdfgh"的索引,我可以使用
cooks.indexOf('cats=sdfgh');
1
但如果我想搜索猫的价值是否已经设定,我该怎么做?cooks.indexOf(find('cat='));
或类似的东西?
所以,在不知道猫的价值的情况下,我如何判断它是否存在于饼干中?
我怎样才能得到那个cookie的索引号?
您可以运行一个简单的正则表达式:
if(fun = document.cookie.match(/(^cats=|;cats=)([^;]+)/)){
console.log(fun);
}
它会给你一个数组,如果匹配,第三个成员就是你的值:)
JSFIDDLE
然而,如果你不必支持糟糕的浏览器,那么值得一看评论中引用的MDN cookie框架。
您可以使用Array.prototype.some
方法来查找数组中的第一个匹配值:
var cooks = document.cookie.split(';'); // ["dogs=bla", "cats=sdfgh", "cabbages=kjhgfdfg"]
var isSet = cooks.some(function(cookie) {
return cookie.indexOf('cats') == 0;
}); // => true