当前位置:   article > 正文

JS如何对Cookie进行存值,取值和清除操作_js清除cookie中的一个字段

js清除cookie中的一个字段

在做项目的过程中,我们经常会对cookie进行操作。例如我们常见的存值,取值,清除指定的cookie和清除全部的cookie以及给存放的cookie设置过期时间等等。所以,根据做项目中发现的这些问题在此做个总结。


cookie中获取域名:

  1. /**
  2. * cookie中获取域名
  3. * */
  4. function GetCookieDomain() {
  5. var host = location.hostname;
  6. var ip = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/;
  7. if (ip.test(host) === true || host === 'localhost') return host;
  8. var regex = /([^]*).*/;
  9. var match = host.match(regex);
  10. if (typeof match !== "undefined" && null !== match) host = match[1];
  11. if (typeof host !== "undefined" && null !== host) {
  12. var strAry = host.split(".");
  13. if (strAry.length > 1) {
  14. host = strAry[strAry.length - 2] + "." + strAry[strAry.length - 1];
  15. }
  16. }
  17. return '.' + host;
  18. }

cookie中存值:

  1. /**
  2. * cookie中存值
  3. * */
  4. function setCookie(name, value) {
  5. var curWwwPath=window.document.location.href;
  6. var pathName=window.document.location.pathname;
  7. var pos=curWwwPath.indexOf(pathName);
  8. var localhostPath=curWwwPath.substring(0,pos); //获取地址到端口号
  9. var projectName=pathName.substring(0,pathName.substr(1).indexOf('/')+1); //项目名
  10. localhostPath = localhostPath.replace(/\"/g, "");
  11. projectName = projectName.replace(/\"/g, "");
  12. if (value) {
  13. var days = 1; //定义一天
  14. var exp = new Date();
  15. exp.setTime(exp.getTime() + days * 24 * 60 * 60 * 1000);
  16. // 写入Cookie, toGMTString将时间转换成字符串
  17. // document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString() + ";path=/video_learning" + ";domain=localhost";
  18. document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString() + ";path=" + projectName + ";domain=" + GetCookieDomain();
  19. }
  20. };

cookie中存值并设置过期时间:

  1. /**
  2. * cookie中存值并设置过期时间
  3. * name名字,value值,expiredays时间
  4. * */
  5. function setCookie(name, value, expiredays) {
  6. if (value) {
  7. var days = 1; //定义一天
  8. var exp = new Date();
  9. exp.setTime(exp.getTime() + expiredays);
  10. // 写入Cookie, toGMTString将时间转换成字符串
  11. document.cookie = name + "=" + escape(value) + ((expiredays==null) ? "" : ";expires=" + exp.toGMTString()) + ";path=/" + ";domain=localhost";
  12. }
  13. };

cookie中取值:

  1. /**
  2. * cookie中取值
  3. * */
  4. function getCookie(name) {
  5. var arr,reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)"); //匹配字段
  6. if (arr = document.cookie.match(reg)) {
  7. return unescape(arr[2]);
  8. } else {
  9. return null;
  10. }
  11. };

清除指定cookie值:

  1. /**
  2. * 清除指定cookie值
  3. * */
  4. function delCookie(name) {
  5. var exp = new Date();
  6. exp.setTime(exp.getTime() - 1);
  7. var cval = setCookie(name);
  8. if (cval && cval != null) {
  9. // document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString() + ";path=/video_learning" + ";domain=localhost";
  10. document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString() + ";path=/video_learning" + ";domain=localhost";
  11. }
  12. };

清除全部cookie值:

  1. /**
  2. * 清除全部cookie值
  3. * */
  4. function clearCookie() {
  5. var curWwwPath=window.document.location.href;
  6. var pathName=window.document.location.pathname;
  7. var pos=curWwwPath.indexOf(pathName);
  8. var localhostPath=curWwwPath.substring(0,pos); //获取地址到端口号
  9. var projectName=pathName.substring(0,pathName.substr(1).indexOf('/')+1); //项目名
  10. localhostPath = localhostPath.replace(/\"/g, "");
  11. projectName = projectName.replace(/\"/g, "");
  12. var keys = document.cookie.match(/[^ =;]+(?=\=)/g);
  13. if (keys) {
  14. for (var i = keys.length; i--;) {
  15. // document.cookie = keys[i] +'=0;expires=' + new Date( 0).toUTCString() + ";path=/video_learning" + ";domain=localhost";
  16. // document.cookie = keys[i] +'=0;expires=' + new Date( 0).toUTCString() + ";path=" + projectName + ";domain=" + localhostPath;
  17. document.cookie = keys[i] +'=0;expires=' + new Date( 0).toUTCString() + ";path=" + projectName + ";domain=" + GetCookieDomain();
  18. }
  19. }
  20. };

cookies给网站和用户带来的好处非常多:

1、Cookie能使站点跟踪特定访问者的访问次数、最后访问时间和访问者进入站点的路径。 
2、Cookie能告诉在线广告商广告被点击的次数,从而可以更精确的投放广告 。
3、Cookie有效期限未到时,Cookie能使用户在不键入密码和用户名的情况下进入曾经浏览过的一些站点。 
4、Cookie能帮助站点统计用户个人资料以实现各种各样的个性化服务 。

cookies过期时间设置方式:

cookie.setMaxAge(0);     //不记录cookie

cookie.setMaxAge(-1);     //会话级cookie,关闭浏览器失效

cookie.setMaxAge(60*60);     //过期时间为1小时

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/149667
推荐阅读
相关标签
  

闽ICP备14008679号