Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
Diffenent ways to get cookie
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:131.0) Gecko/20100101 Firefox/131.0
Browser:
Firefox 131
Operating system:
Windows
Device Platform:
Desktop
Date tested:
one year ago
Test name
Executions per second
Original
283987.7 Ops/sec
Regex
284076.1 Ops/sec
RegexLoop
274986.5 Ops/sec
LastIndexOf
301079.2 Ops/sec
LastindexOf2
262704.2 Ops/sec
Script Preparation code:
function getCookieIX(name,str){ name = name+'='; var ck = str || document.cookie; var idx = ck.lastIndexOf(name); if(idx==-1){ return undefined} var nameLength = name.length; var p1 = ck.substring(idx+nameLength); var idx2 = p1.indexOf(';'); if(idx2>-1){ p1 = p1.substring(0,idx2); } return p1; } function getCookieIX2(name, str) { name = name + "="; var ck = str || document.cookie; ck = "; " + ck; // support if the var ckLC = ck.toLowerCase(); var idx = ckLC.lastIndexOf("; " + name.toLowerCase()); if (idx == -1) { return undefined; } var nameLength = name.length; var p1 = ck.substring(idx + nameLength); var idx2 = p1.indexOf(";"); if (idx2 > -1) { p1 = p1.substring(0, idx2); p1 = decodeURIComponent(p1); return p1; } return p1; } function getCookie(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) { var d = c.substring(nameEQ.length, c.length); d = decodeURIComponent(d); return d; } } return undefined; } function getCookieM(name) { name = name + ""; var re = new RegExp("(^| )" + name + "=([^;]+)", "gmi"); var m = document.cookie.match(re); if (!!m) { m = m.pop(); m = m.substring(m.indexOf("=") + 1); m = !!m ? decodeURIComponent(m) : m; return m; } } function getCookieW(name, str) { var str = str || document.cookie; var re = new RegExp("(?:^|; )("+name+"+?)(?:=([^;]*))?(?:;|$)", "gi"); var value; var match; while ((match = re.exec(str))) { re.lastIndex = match.index + match.length - 1; var k = match[1]; var v = decodeURIComponent(match[2]); !!v && (value = v); } return value; } document.cookie = "foo=bar"; document.cookie = "foo=nope;domain=measurethat.net";
Tests:
Original
getCookie('foo')
Regex
getCookieM('foo')
RegexLoop
getCookieW('foo')
LastIndexOf
getCookieIX('foo')
LastindexOf2
getCookieIX2('foo')