我正在从这个线程开始工作:
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的变量中。这个正则表达式略高于我,我不知道从哪里开始。
答案 0 :(得分:3)
此...
var cookie_country = read_cookie('country');
......对于这种情况应该足够了。 )这个函数的重点(和许多其他函数一样)是它提供了一个工具,用于通过某个字符串键(document.cookie
,在你的情况下)从'country'
字符串中提取值:你不是需要知道这个工具究竟是如何工作的,除非它破裂。 )
......但无论如何,或许知道这一点也许会很有趣。 )document.cookie
实际上是一个包含以分号分隔的cookie列表(其键及其值)的字符串。这里还有read about it(MDN)。
正则表达式基本上捕获此字符串的一部分,该字符串在行的开头或某些;
的末尾匹配给定的字符串,然后再继续,直到另一个分号的字符串结尾出现。
例如,如果key
参数等于country
,则正则表达式将如下所示:
/(?:^|; )country=([^;]*)/
...它将捕获与document.cookie
字符串相关联的country
中存储的值。
答案 1 :(得分:0)
我猜您必须逐行阅读Cookie。
var rows = document.cookie.split(;);
for (i=0;i<rows.length;i++)
{
var firstrow = rows[i].substr(0,rows[i].indexOf("="));
}
创建时你可以将变量放在标识符之间,比如AZ 正则表达式应如下所示:&#39; ## [AZ] {2} ##&#39;
当然,我可能完全错了:)
希望这有帮助。