Closed1

特定の正規表現にマッチしたCookieを一括削除する(TypeScript)

catnosecatnose

ブラウザ上で特定の正規表現にマッチする名前のCookieをまとめて削除したいケースがあったのでメモ。

typescript
function removeMatchedCookies(regex: RegExp, domain: string) {
  if (!navigator.cookieEnabled) return; // cookieがオフなので終了

  const cookieNames = document.cookie.split(/=[^;]*(?:;\s*|$)/); // クッキーの名前一覧を取得
  cookieNames.forEach((name) => {
    if (regex.test(name)) {
      document.cookie = `${name}=;expires=Thu, 01 Jan 1970 00:00:00 GMT;domain=.${domain}`; // 有効期限が切れるように
    }
  });
}

// こんな感じで実行
removeMatchedCookies(/^abc/, "example.com"); // abcから始まる名前のcookieを一括削除したいとき
removeMatchedCookies(/abc$/, "example.com"); // abcで終わる名前のcookieを一括削除したいとき

説明するまでもないが、HttpOnlyなCookieについてはブラウザから削除することはできない。

このスクラップは2021/03/22にクローズされました