indexOf against regExp

JavaScript performance comparison

Revision 4 of this test case created

Info

Finding a sub-string using RegExp against searching using String.prototype.indexOf

Preparation code

 
<script>
Benchmark.prototype.setup = function() {
    var str = 'Download other sizes of this icon:Smárabíó, sýningartímarVeldu kvikmyndahús í flipunum að neðan til þess að birta sýningartíma þessSmárabíó    Laugarásbíó    BorgarbíóÞriðjudagur       Miðvikudagur immtudagur        Föstudagur     Laugardagur     Sunnudagur      Mánudagur31.01         01.02   2.02    03.02   04.02   05.02   06.0220:00      20:00   20:00   22:30   22:30   2:30             hello=hi;                Allt um Midi.is /    Afgreiðslustaðir /    Skilmálar /    Hafa samband /    Auglýsingar /    Veftré Miði.is ehf. - Fiskislóð 1  101 Reykjavík - Sími: 540 9800 Allt myndefni á vefnum er notað með leyfi frá rétthöfum.Nánari upplýsingar um vefinn er hægt að lesa á um midi.is© 2012 Miði.is ehf - Server: IS03sdkfjhdkjf duioayiowe esdfdsf ? theremyfriend > sdfkjf ?';
   
    var regex =  /hello=[a-z0-9_-]{1,20};/;
    var patt =  /[a-z0-9_-]{1,20}/;
     var bigpatt = /((?:\r|\n|.)*?)ICON=([a-z0-9_-]{1,20});((?:\r|\n|.)*)/;
    var rev = /[^a-z0-9_-]/;
};
</script>

Test runner

Warning! For accurate results, please disable Firebug before running the tests. (Why?)

Java applet disabled.

Testing in unknown unknown
Test Ops/sec
RegExp
return regex.test(str);
pending…
indexOf
var  vresult, start, resultArray;
start =  str.indexOf('hello=');
if(start>-1){
var test = str.indexOf(';',start);
if(test >-1 && test > start + 6 && test - start <20){
  var startTxt = str.substring(0,start);
  var endTxt = str.substring(test);
 var result = str.substring(start+6,test);
vresult = !rev.test(result) && result;
resultArray = [startTxt, vresult, endTxt];
}
}
return resultArray;
pending…
split
var resultArray;
if(str.indexOf('hello=')> -1){
resultArray = str.split(regex);
}
return resultArray
pending…
exec
var resultArray
resultArray = bigpatt.exec(str);
return resultArray
pending…
straight indexof
var result, vresult, start, test;
start = str.indexOf('hello=');
if(start> -1){

test = str.indexOf(';',start);
if(test >-1 && test > start + 6 && test - start <20){
result = true;
}
}
return result
pending…

Compare results of other browsers

Revisions

You can edit these tests or add even more tests to this page by appending /edit to the URL. Here’s a list of current revisions for this page:

0 comments

Add a comment