我正在处理这个线程:
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/