javascript - 使用此 JavaScript 将 cookie 加载到变量中

标签 javascript jquery regex cookies

我正在处理这个线程:

What is the shortest function for reading a cookie by name in JavaScript?

这表明可以使用以下代码在 JavaScript 中读取 cookie:

function read_cookie(key)
{
    var result;
    return (result = new RegExp('(?:^|; )' + encodeURIComponent(key) + '=([^;]*)').exec(document.cookie)) ? (result[1]) : null;
}

我有一个名为“country”的cookie,它的值是两个字母,例如“AZ”。我想知道如何读取 cookie 的值并将其放入一个名为 cookie_country 的变量中。这个正则表达式有点超出我的理解,我不知道从哪里开始。

最佳答案

这...

var cookie_country = read_cookie('country');

...对于这种情况应该足够了。 )这个函数(和许多其他函数一样)的要点是它为您提供了一个工具,用于通过一些字符串键('country')从 document.cookie 字符串中提取值,在你的情况下):你不需要知道这个工具到底是如何工作的,除非它坏了。 )

...但无论如何,了解这一点也许也很有趣。 ) document.cookie 实际上是一个包含以分号分隔的 cookie 列表(其键和值)的字符串。更多 read about it (MDN)。

正则表达式基本上在行的开头或某些 ; 的结尾捕获此字符串中与给定字符串匹配的部分,然后继续直到字符串结束出现另一个分号。

例如,如果 key 参数等于 country,则正则表达式将如下所示:

/(?:^|; )country=([^;]*)/

... 它将捕获存储在 document.cookie 中与 country 字符串相关联的 value

关于javascript - 使用此 JavaScript 将 cookie 加载到变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13353352/

相关文章:

javascript - 流畅的按键输入? Javascript 中的(持续的按键输入流)

javascript - 如何将其他变量传递到 Javascript 中的 Firebase promise 回调中?

javascript - Jquery ui 自动完成 - 多个来源

javascript - 快速滚动离开悬停触发的弹出窗口不会隐藏弹出窗口

java - 使用正则表达式中的反向引用动态替换文本

php - 用 php regex 替换方括号之间的子字符串

javascript - 根据 SVG 元素顶部位置定位工具提示

javascript - css3 跨浏览器转换不工作

javascript - 编写 ECMAScript5 兼容代码

regex - sed 正则表达式中的转义加号