Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
localeIncludesLowercase vs escape+test vs escape+match vs findMatchGroups
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36
Browser:
Chrome 126
Operating system:
Mac OS X 10.15.7
Device Platform:
Desktop
Date tested:
one year ago
Test name
Executions per second
localeIncludesLowercase
5894777.5 Ops/sec
escape+test
2189721.0 Ops/sec
escape+match
1698813.0 Ops/sec
findMatchGroups
1568162.9 Ops/sec
Script Preparation code:
var a = 'abcdefghijklmnopqrstuvwxyz'; var b = 'NOP'; var locale = 'en-US' ///////////////////////////////////////////////////////////////////////////////////// var BACKSLASH = '\\'; var escapeMap = new Map( [ '\\', '^', '$', '*', '+', '?', '(', ')', '[', ']', '{', '}', '=', ':', '!', '|', ].map(char => [char, `${BACKSLASH}${char}`]) ); var escapeRegExp = (searchPhrase) => [...searchPhrase] .map(character => escapeMap.get(character) || character) .join(''); var findMatchGroups = ( searchPhrase, valueToSearchOn ) => { const safeSearchPhrase = escapeRegExp(searchPhrase); const searchPhraseRegExp = new RegExp(`(.+)?(${safeSearchPhrase})(.+)?`, 'i'); const match = valueToSearchOn.match(searchPhraseRegExp); if (match) { const [, preFind = '', find = '', postFind = ''] = match; return [preFind, find, postFind]; } return [valueToSearchOn, '', '']; }; /////////////////////////////////////////////////////////////////////////////////////
Tests:
localeIncludesLowercase
a.toLocaleLowerCase(locale).includes(b.toLocaleLowerCase(locale));
escape+test
new RegExp(escapeRegExp(b), 'gi').test(a)
escape+match
a.toLocaleLowerCase(locale).match(escapeRegExp(b).toLocaleLowerCase(locale))
findMatchGroups
findMatchGroups(b, a)[1] !== ''