Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
Regex vs For loop [1-9]|X
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Edg/138.0.0.0
Browser:
Chrome 138
Operating system:
Linux
Device Platform:
Desktop
Date tested:
5 months ago
Test name
Executions per second
Regex and Loop
1291132.5 Ops/sec
For loop, ParseInt
23508676.0 Ops/sec
For loop with switch case
21054052.0 Ops/sec
For loop, toString
20301546.0 Ops/sec
Pure Regex
18711142.0 Ops/sec
Script Preparation code:
var dataPool = ["1234", "1X34", "0123", "12x4"]; var testStr = dataPool[Math.floor(Math.random() * dataPool.length)]; var mwcRegex = /^(?:(?:1|X)(?=2|X|$))(?:(?:2|X)(?=3|X|$))?(?:(?:3|X)(?=4|X|$))?(?:(?:4|X)(?=5|X|$))?(?:(?:5|X)(?=6|X|$))?(?:(?:6|X)(?=7|X|$))?(?:(?:7|X)(?=8|X|$))?(?:(?:8|X)(?=9|X|$))?(?:(?:9|X)$)?$/;
Tests:
Regex and Loop
let isValid = true; for (let i = 0; i < testStr.length; i++) { let code = testStr.charAt(i); let regStr = `(${i+1}|X)`; const regEx = new RegExp(regStr); if(regEx.test(code) === false){ isValid = false; break; } } return isValid;
For loop, ParseInt
let isValid = true; for (let i = 0; i < testStr.length; i++) { let code = testStr.charAt(i); if (code === "X"){ } else{ let codeValue = parseInt(code, 10); if(codeValue !== i+1){ isValid = false; break; } } } return isValid;
For loop with switch case
let isValid = true; for (let i = 0; i < testStr.length; i++) { let char = testStr.charAt(i); switch (true) { case char === 'X': break; case parseInt(char, 10) === i + 1: break; default: isValid = false; } } return isValid;
For loop, toString
let isValid = true; for (let i = 0; i < testStr.length; i++) { let code = testStr.charAt(i); if (code === "X"){ } else{ if(code !== (i+1).toString()){ isValid = false; break; } } } return isValid;
Pure Regex
return mwcRegex.test(testStr);