Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Diffenent ways to get cookie
(version: 0)
Comparing performance of:
Original vs Regex vs RegexLoop vs LastIndexOf vs LastindexOf2
Created:
one year ago
by:
Guest
Jump to the latest result
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')
Rendered benchmark preparation results:
Suite status:
<idle, ready to run>
Run tests (5)
Previous results
Fork
Test case name
Result
Original
Regex
RegexLoop
LastIndexOf
LastindexOf2
Fastest:
N/A
Slowest:
N/A
Latest run results:
Run details:
(Test run date:
one year ago
)
User agent:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 Edg/128.0.0.0
Browser/OS:
Chrome 128 on Windows
View result in a separate tab
Embed
Embed Benchmark Result
Test name
Executions per second
Original
745670.6 Ops/sec
Regex
657166.3 Ops/sec
RegexLoop
543653.2 Ops/sec
LastIndexOf
1489295.8 Ops/sec
LastindexOf2
895241.8 Ops/sec
Related benchmarks:
123123
ttttttttttttttest
Dom benchmark
contains vs closest2
contains vs closest fork
contains vs closest3
mybencmark11111
querySelector3
Fetch cookie value
Comments
Confirm delete:
Do you really want to delete benchmark?