Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
Regex vs .indexOf with more complex expressions
Find where "via" or "mot" is in a string, and return all words from the start of the string to that point. Otherwise, return the entire string.
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Windows NT 5.1; rv:52.0) Gecko/20100101 Firefox/52.0
Browser:
Firefox 52
Operating system:
Windows XP
Device Platform:
Desktop
Date tested:
one year ago
Test name
Executions per second
Regex
820641.1 Ops/sec
.indexOf
829073.0 Ops/sec
HTML Preparation code:
<div></div>
Script Preparation code:
const data = window.data = [ "Jørpeland", "Stavanger via UiS-SUS", "Stavanger", "Randaberg via UiS", "796", "776", "Oslo bussterminal", "Sandnes via SUS-UiS", "Forus via Stavanger", "Åsveien via Sandvika", "Risavika via Stavanger-Varatun", "Stavanger via UiS", "Flyplassen", "Risavika via Stavanger-Smeaheia", "Haugesund bussterminal", "Hjelmeland", "Kristiansand rutebilstasjon", "Dale", "Bogafjell", "Mortavika", "Sundelia via Stavanger", "Sandnes via flyplassen", "Viste Hageby via Stavanger", "B775-BE", "Madlakrossen via SUS-Madlamark", "Sandnes", "Kvernaland - Øksnavadporten", "Bergen", "762", "Bleikemyr via Haugesund sentrum", "Hinna via SUS", "Grinde via Amanda", "Sandnes via Stavanger-Smeaheia", "Stokka", "Etne", "Skaarlia", "Stavanger via SUS", "Amanda via Haugesund sentrum", "3054", "Ålgård - Fiskebekk", "Skudeneshavn via Kopervik og Veavågen", "Vassøy - Kalvøy", "Sandnes via UiS", "Madlakrossen via SUS-Tjensvoll", "Vassøy", "779", "Haugesund via Kopervik", "Hovland - Egersund", "Rosenli via Madlamark-SUS", "3053", "Kleppekrossen - Klepp stasjon", "Stokka via UiS", "797", "778", "Haugesund via Amanda", "Randaberg", "Madlasandnes", "Hundvåg vest/øst", "Vikjå", "Haugesund via Veavågen og Kopervik", "Stavanger via Madlamark-SUS", "Rosenli via Tjensvoll-SUS", "Stavanger Airport via Forum", "Heng", "Ormøy", "Skipavik", "Vormedal via Haugesund sentrum", "Godeset via SUS", "Riskafeltet - Hommersåk", "Sandnes - Hommersåk", "Grødem", "Haugesund", "Gausel stasjon", "Sola via UiS", "Arsvågen", "Austre Åmøy via Bru-Vestre Åmøy kai", "Kristiansand/Stavanger", "Ølen via Vikebygd", "Hundvåg øst/vest", "Åkrehamn via Kopervik", "Sandnes via Stavanger-Varatun", "Nedstrand", "Ropeid - Ølen", "Forus - Ålgård - Fiskebekk", "Ravndal - Oltedal - Gilja", "3052", "Egersund - Hauge i Dalane", "Stavanger sentrum via Forum", "Haugesund via Nes", "Kolnes via Amanda", "3056", "3051", "Hjelmeland via Fister", "3152", "B775-BF", "Rennesøy via Randaberg", "Tananger via flyplassen", "Ropeid - Sauda", "Kristiansand/Oslo", "Vardenes", "Ganddal", "Hundvåg", "Bryne", "Tananger", "Solbakk via Voster", "Fogn", "Jåttåvågen via SUS", "Mekjarvik", "Tau", "Stavanger via Randaberg", "Nesvik - Skipavik", "Jelsa", "Hebnes" ]
Tests:
Regex
const TOTAL_STRINGS = window.TOTAL_STRINGS; const data = window.data; let x = 0; while (x < TOTAL_STRINGS) { const str = data[x++]; const match = str.match(/^(.+?(?:(?=\b(via|mot)\b)|(?!.*\b(via|mot)\b).*$))/); const result = match ? match[0].trim() : str; }
.indexOf
const TOTAL_STRINGS = window.TOTAL_STRINGS; const data = window.data; const match = ['via', 'mot']; let x = 0; while (x < TOTAL_STRINGS) { const str = data[x++].split(' '); let k = 0; let i = -1; while (k < match.length && i === -1) { i = str.indexOf(match[k++]); } const result = (i !== -1 ? str.slice(0, i - 1) : str).join(' '); }