LoginSignup
5
4

More than 3 years have passed since last update.

【JavaScript】Cookieの取得・追加・削除をメソッド化

Last updated at Posted at 2018-10-02

最近よくcookieを利用するので、再利用できるようにコードをメソッド化しました。
今のところエラーは出てないので大丈夫なはず・・・

script.js
var COOKIES = COOKIES || {
    /*
     指定したcookieの値を取得して返す関数
     第1引数=取得したいcookiename
    */
    getCookie: function(cName) {
        var cookie_name = cName;
        if(cookie_name == '' || cookie_name == null) {
            console.log('COOKIES.getCookie:引数に値を代入してください。');
        } else {
            var set_replace = '(?:(?:^|.*\s*)' + cookie_name + '\s*\=\s*([^;]*).*$)|^.*$';
            var cookie_value = document.cookie.replace(new RegExp(set_replace), '$1');
            return cookie_value;
        }
    },
    /*
     指定したcookieを追加する関数
     第1引数=追加するcookiename;第2引数=追加するcookievalue;第3引数=cookieの有効期限(day)
    */
    setCookie: function(cName, cValue, cTime) {
        var cookie_name = cName;
        var cookie_Value = cValue;
        var cookie_domain = location.hostname;
        var cookie_time = cTime ? (60 * 60 * 24) * cTime : '';
        if(cookie_name == '' || cookie_name == null) {
            console.log('COOKIES.setCookie:第1引数に値を代入してください。')
        } else {
            document.cookie = cookie_name + '=' + cookie_Value + ';domain=' + cookie_domain + ';max-age=' + cookie_time;
        }
    },
    /*
     指定したcookieの値を削除する関数
     第1引数=削除したいcookiename
    */
    deleteCookie: function(cName) {
        var cookie_name = cName;
        if(cookie_name == '' || cookie_name == null) {
            console.log('COOKIES.deleteCookie:引数に値を代入してください。');
        } else {
            COOKIES.setCookie(cookie_name, '', 0);
        }
    }
};

cookie値を取得したい場合

// cookiename'hoge'の値を取得して変数get_cookieに代入
var get_cookie = COOKIES.getCookie('hoge');

cookieを追加する場合

// cookiename'hoge'値'hogehoge'を30日間保持
COOKIES.setCookie('hoge', 'hogehoge', 30);

cookieの値を削除する場合

// cookiename'hoge'の値を削除
COOKIES.deleteCookie('hoge');

短くしたやつ

script.js
var COOKIES = COOKIES || {
    getCookie: function(cName) {
        if(cName != '' || cName != null) {
            var set_replace = '(?:(?:^|.*\s*)' + cName + '\s*\=\s*([^;]*).*$)|^.*$';
            return document.cookie.replace(new RegExp(set_replace), '$1');
        }
    },
    setCookie: function(cName, cValue, cTime) {
        var time = cTime ? (60 * 60 * 24) * cTime : '';
        if(cName != '' || cName != null) {
            document.cookie = cName + '=' + cValue + ';domain=' + location.hostname + ';max-age=' + time;
        }
    },
    deleteCookie: function(cName) {
        if(cName != '' || cName != null) {
            COOKIES.setCookie(cName, '', 0);
        }
    }
};

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4