lynxerzhang / JSSkills

MIT License
0 stars 0 forks source link

获取浏览器中Cookie值的问题 #13

Open lynxerzhang opened 6 years ago

lynxerzhang commented 6 years ago
//获取指定cookie值
function readCookie(name) {
    var g = new RegExp('(?:^|;)\\s*' + name + '\\s*=\\s*([^;]+)');
    var s = document.cookie;
    var d = null;
    if (g.test(s)) {
        d = s.match(g);
        if(d){
            d = d.pop();
        }
    }
    return d;
}

如上实现中的正则表达式做过一个优化,就是使用'非捕捉group'来简化返回值,也就是?:修饰符, 其中字符串的match函数的返回内容,会根据填入的正则表达式是否添加全局搜索修饰符g而不一样, 如果没有填入g,它的返回形式和RegExp的exec方法很像,会返回各种capture group和index值,如果 添加g,返回的就是简单的数组匹配项。

详细讨论了如何用最少的代码来获取指定cookie

关于cookie的介绍

关于读取cookie,需要unescape,写入cookie,需要escape