JavaScript操作Cookie方法实例分析

前端技术 2023/09/08 JavaScript

本文实例讲述了JavaScript操作Cookie方法。分享给大家供大家参考。具体如下:

// My methods for setting, reading and deleting cookies.
// I have methods to check for the existence of cookie names or values, 
// to retrieve by name or value, and to create a formatted string of 
// all the cookies.
// My site: andrew.dx.am
var SetCookie = function (name, value, expires, path, domain, secure) {
  // The caller should Trim the name/value pair, if required.
  // Sets the name/value pair (encoded); \'expires\' is the no. of days.
  var expires_date;
  if (expires) {
    expires_date = new Date();
    expires_date.setDate(expires_date.getDate() + expires);
  }
  document.cookie = encodeURIComponent(name) + \"=\" + 
    encodeURIComponent(value) +
    ( ( expires ) ? \";expires=\" + expires_date.toUTCString() : \"\" ) +
    ( ( path ) ? \";path=\" + path : \"\" ) +
    ( ( domain ) ? \";domain=\" + domain : \"\" ) +
    ( ( secure ) ? \";secure\" : \"\" );
};
var DeleteCookie = function (name, path, domain) {
  // The caller should Trim the name/value pair.
  // Encodes the name before deleting.
  document.cookie = encodeURIComponent(name) + \"=\" + 
    ( ( path ) ? \";path=\" + path : \"\") + ( ( domain ) ? \";domain=\" + 
      domain : \"\" ) + \";expires=Fri, 01-Jan-2010 00:00:01 UTC\";
};
var DelAllCookies = function () {
  var currDate = new Date(), i, theCookie = document.cookie.split(\";\");
  currDate = currDate.toUTCString();
  i = theCookie.length;
  while ( i-- ) {
    document.cookie = theCookie[i] + \"; expires =\" + currDate;
  }
};
var EscapeReg = function (str) {
  // Helper fn: Escapes characters for use in a regular expression.
  return str.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, \"\\\\$&\");
};
// The following four functions do not Trim the name or value 
// - the calling fns should do this.
var CNameExists = function (cookie_name) { // case-insensitive
  var testName, myReg;
  if (document.cookie.length == 0) return false;
  testName = EscapeReg(cookie_name);
  myReg = new RegExp(\'(^|;) ?\' + testName + \'=([^;]*)(;|$)\',\'i\');
  return myReg.test(decodeURIComponent(document.cookie));
};
var CValueExists = function (cookie_value)  { // case insensitive
  var testName, myReg;
  if (document.cookie.length == 0) return false; 
  testName = EscapeReg(cookie_value);
  myReg = new RegExp(\'(=)\' + testName + \'(;|$)\',\'i\');
  return myReg.test(decodeURIComponent(document.cookie));
};
var CNameGet = function (cookie_value) { // case-insensitive
  var testName, myReg, results;
  if (document.cookie.length == 0) return \'\';
  testName = EscapeReg(cookie_value);
  myReg = new RegExp(\'(^|;) ?([^=]*)=\' + testName + \'(;|$)\',\'i\');
  results = decodeURIComponent(document.cookie).match(myReg);
  return ( results ) ? results[2] : \'\';
};
var CValueGet = function (cookie_name) { // case-insensitive
  var testName, myReg, results;
  if (document.cookie.length == 0) return \'\';
  testName = EscapeReg(cookie_name);
  myReg = new RegExp(\'(^|;) ?\' + testName + \'=([^;]*)(;|$)\',\'i\');
  results = decodeURIComponent(document.cookie).match(myReg);
  return ( results ) ? results[2] : \'\';
};
var CookieStr = function () {
  // Returns a string (with line breaks) which could be 
  // placed in, for example, a textarea.
  return decodeURIComponent(document.cookie).
    replace(/([^=;]+)=([^;]*)[;\\s]*/g,\'$1 ($2)\\n\') || \'\';
};

希望本文所述对大家的javascript程序设计有所帮助。

本文地址:https://www.stayed.cn/item/21805

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。