ライブラリを使わずにJavaScriptでHTTP cookieをパースする方法

提供: Node.js/JavaScript入門
2018年4月5日 (木) 00:15時点におけるDaemon (トーク | 投稿記録)による版 (ページの作成:「jQueryなどのライブラリを使わずに、JavaScriptでHTTP cookieをパースする方法をまとめました。 '''読み方''' ;HTTP cookie:えいちてぃー...」)

(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内検索
スポンサーリンク

jQueryなどのライブラリを使わずに、JavaScriptでHTTP cookieをパースする方法をまとめました。

読み方

HTTP cookie
えいちてぃーてぃーぴー くっきー

概要

JavaScriptで HTTP cookie の値を取得するには

document.cookie

にアクセスします。

ブラウザのコンソールで

document.cookie

とか

console.log(document.cookie);

と入力すると、設定されいる cookie が表示されます。

JavaScriptのライブラリを使わずに、簡単に cookie の値を取得するサンプルを用意してみましたので、参考にしてパースしてみてください。

想定しているcookieのフォーマット

A=123; C=v=1&x=3;

ソースコード

cookie名前を指定して、値を取得する。

function get_cookie(cookies, name){
        var c = new RegExp(name + "=[^;]+").exec(cookies);
        return c ? c[0].replace(name + '=', ''): null;
}

使い方としては、

var cookie_a = get_cookie(document.cookie, 'A');
var cookie_c = get_cookie(document.cookie, 'C');

となります。

cookieのサブフィールドを指定して、値を取得する。 たとえば、以下のケースの場合、C という値の cookie のサブフィールドの v の値や x の値を取得します。

v=1&x=3
function get_cookie_part(cookie, name) {
  var c = new RegExp('&?'+name+'=([^&]+)').exec(cookie);
  return c ? c[1]:null;
}

使い方としては、

var value_v = get_cookie_part('v=1&x=3', 'v');
var value_x = get_cookie_part('v=1&x=3', 'x');

となります。

関連項目




スポンサーリンク