繁体   English   中英

js中的正则表达式,从cookie中获取值

[英]regex in js ,get the value from cookie

我想获取cookie中“键”的“值”,cookie的格式为:

KEY1:数值;键2:值2; ...... keyn:值N

因为JS不支持(?<=exp) ,所以我使用此函数来获取值:

    function getCookieValue(key)
    {
        var cookie = document.cookie;
        var filter = new RegExp(key+"=([^;]*)(;|$)");
        return cookie.match(filter)[1];
    }

结果是正确的,但是我有一些疑问:

  1. 如果我使用cookie.match(filter) ,则匹配结果为key:value;,value 正则表达式匹配两个结果。 为什么?
  2. 对于cookie.match(filter)[1] ,返回的数组是否取决于JS解析器?
  3. 有没有更好的方法?

如果我使用cookie.match(filter),则匹配结果为“ key:value;,value”。 雷克斯匹配两个结果,为什么?

String#match函数的结果值是一个数组,其中数组的第一个索引保存完整匹配,而数组中的后续元素保存匹配组。

对于cookie.match(filter)[1],返回的数组是否取决于JS解析器?

不,这不依赖于特定的JS解析器,该行为是标准的。

有没有更好的方法?

我确定那里有cookie解析器库。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM