Get cookie by name Get cookie by name javascript javascript

Get cookie by name


One approach, which avoids iterating over an array, would be:

function getCookie(name) {  const value = `; ${document.cookie}`;  const parts = value.split(`; ${name}=`);  if (parts.length === 2) return parts.pop().split(';').shift();}

Walkthrough

Splitting a string by token will produce either, an array with one string (same value), in case token does not exist in a string, or an array with two strings , in case token is found in a string .

The first (left) element is string of what was before the token, and the second one (right) is what is string of what was after the token.

(NOTE: in case string starts with a token, first element is an empty string)

Considering that cookies are stored as follows:

"{name}={value}; {name}={value}; ..."

in order to retrieve specific cookie value, we just need to get string that is after "; {name}=" and before next ";". Before we do any processing, we prepend the cookies string with "; ", so that every cookie name, including the first one, is enclosed with "; " and "=":

"; {name}={value}; {name}={value}; ..."

Now, we can first split by "; {name}=", and if token is found in a cookie string (i.e. we have two elements), we will end up with second element being a string that begins with our cookie value. Then we pull that out from an array (i.e. pop), and repeat the same process, but now with ";" as a token, but this time pulling out the left string (i.e. shift) to get the actual token value.


I would prefer using a single regular expression match on the cookie:

window.getCookie = function(name) {  var match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));  if (match) return match[2];}

OR Also we are able to use as a function , check below code.

function check_cookie_name(name)     {      var match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));      if (match) {        console.log(match[2]);      }      else{           console.log('--something went wrong---');      }   }

Improved thanks to Scott Jungwirth in the comments.


use a cookie getting script:

function readCookie(name) {    var nameEQ = name + "=";    var ca = document.cookie.split(';');    for(var i=0;i < ca.length;i++) {        var c = ca[i];        while (c.charAt(0)==' ') c = c.substring(1,c.length);        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);    }    return null;}

then call it:

var value = readCookie('obligations');

i stole the code above from quirksmode cookies page. you should read it.