javascript - 如何判断cookie值是否匹配

标签 javascript cookies

我正在读取 Cookie 同意“CookieScriptConsent”的 cookie 值,它可以以不同的方式存储值,例如

{"action":"reject","categories":"[]"}

{"action":"accept","categories":"[]"}

{"action":"accept"}

{"action":"accept","categories":"[\"performance\",\"targeting\",\"functionality\"]","key":"58abddd4-493e-499a-9711-67644adc39af"}

{"action":"accept","categories":"[\"performance\"]","key":"24b56441-d831-4cd1-8e5f-47353257f500"}

我正在使用一个 cookie 读取插件来读取 cookie 值 Cookies.get('CookieScriptConsent');

我将此值存储在变量中,现在如果 cookie 被接受或拒绝,我需要读取值。

var string= Cookies.get('CookieScriptConsent');

var res = str.match(/accept/gi)

我正在使用match js 的函数来查看我是否找到匹配项,它将返回值或 null 我如何使用此 if if 语句或实现此目的的最佳方法是什么

我应该使用var n = str.indexOf("accept");因为它会给我一个数值,可以很容易地在 if 语句中使用它来检查值是否大于 0

最佳答案

如果 cookie 中存储的数据是字符串化的 JSON 对象,您可以尝试解析它并检查属性是否与您要查找的值匹配:

function getCookieData() {
    var cookie = Cookies.get("CookieScriptConsent");
    console.log("Raw data: ", cookie);
    if (cookie) {
        var scriptConsent = JSON.parse(cookie);
        if (scriptConsent.action === "accept") {
            console.log("Consented!");
        } else {
            console.log("Rejected!");
        }
    } else {
        console.log("Cookie do not exists");
    }
}

这还允许您检查此特定属性是否具有值。

希望对你有帮助!

关于javascript - 如何判断cookie值是否匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61607260/

相关文章:

javascript - knockout.js 不对可观察数组进行排序

javascript - 删除事件监听器并在调整大小时重置 classList 切换

Django:使用不同的 cookie 集重新提交表单成功。这可能意味着该表单不包含任何 CSRF 反制措施

java - 带有 jax-rs 的 Cookie 域和路径

Javascript:单击提交按钮时如何将隐藏的输入标记附加到表单中?

php - 如何找到字符串的物理长度?

javascript - 使用 JavaScript Cookie 的简单购物车

c# - 使用 Azure 数据工厂 Web 事件发布表单数据会向 C# 脚本返回不同的结果

javascript - 是否可以查看打印在控制台上的两个 Javascript 对象是否是同一个实例(最好在 Chrome 中)

javascript - 如何在 Angular 中处理浏览器选项卡关闭事件?只关闭,不刷新