Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
getCookie variations
(version: 0)
Comparing performance of:
original vs Regex vs regexloop vs lastIndexOf
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 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')
Rendered benchmark preparation results:
Suite status:
<idle, ready to run>
Run tests (4)
Previous results
Fork
Test case name
Result
original
Regex
regexloop
lastIndexOf
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
790649.8 Ops/sec
Regex
729702.8 Ops/sec
regexloop
564110.1 Ops/sec
lastIndexOf
1555233.8 Ops/sec
Related benchmarks:
.indexOf vs .startsWith
.indexOf vs .startsWith vs .substr
Regex /i vs .indexOf with tolowerCase
Normalize path: JS Regex vs .endsWith vs .indexOf vs .slice
.indexOf vs .startsWith - cccccccccccccccccccc
JavaScript Case Insensitive String Start: regex vs startsWith() vs indexOf() vs localeCompare()
getCookie string vs regex
Comments
Confirm delete:
Do you really want to delete benchmark?