regexp vs indexOf (v24)

Revision 24 of this benchmark created by Arjan on


Preparation HTML

<div id="foo" class="a foo bar"></div>

Setup

var r;
  var element = document.getElementById('foo');
  var reContains = /(?:^| )foo(?: |$)/;
  var regExpContains = RegExp('(?:^| )foo(?: |$)');
  
  function dynamicRegExp(node) {
    return RegExp('(?:^| )foo(?: |$)').test(node.className);
  }
  
  function inlineRegExp(node) {
    return /(?:^| )foo(?: |$)/.test(node.className);
  }
  
  function storedRegExp(node) {
    return reContains.test(node.className);
  }
  
  function stringIndexOf(node) {
    return (' ' + node.className + ' ').indexOf(' foo ') > -1;
  }
  
  // Not too "dynamic" here indeed; see
  // http://stackoverflow.com/q/9750338
  function dynamicStoredRegExp(node) {
    return regExpContains.test(node.className);
  }

Test runner

Ready to run.

Testing in
TestOps/sec
stored regexp, parsed from /.../
r = storedRegExp(element);
ready
string indexOf
r = stringIndexOf(element);
ready
dynamic regexp
r = dynamicRegExp(element);
ready
inline regexp
r = inlineRegExp(element);
ready
stored regexp, parsed from RegExp
r = dynamicStoredRegExp(element);
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.