搜索字符串是否存在于indexOf

时间:2015-06-25 15:17:21

标签: javascript arrays cookies

我将一个cookie拆分成一个数组:

var cooks = document.cookie.split(';');
[dogs=bla, cats=sdfgh, cabbages=kjhgfdfg]

如果我想找到'cats = sdfgh'的索引,我可以使用

cooks.indexOf('cats=sdfgh');
1

但是,如果我想搜索是否已经设置了值猫,我该怎么做? cooks.indexOf(find('cat='));或其他相似之处?

所以在不知道猫的价值的情况下,如何判断它是否存在于cookie中?

而且,我怎样才能获得该cookie的索引号?

2 个答案:

答案 0 :(得分:2)

你可以运行一个简单的正则表达式:

if(fun = document.cookie.match(/(^cats=|;cats=)([^;]+)/)){
    console.log(fun);
}

它将为您提供一个数组,其中第3个成员是您的值,如果它匹配:)

JSFIDDLE

但是,如果你不必支持糟糕的浏览器,那么值得看一下评论中引用的MDN cookie框架。

答案 1 :(得分:0)

您可以使用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