RegExp.test vs. String.search (v22)

Revision 22 of this benchmark created on


Preparation HTML

<script>
  var strings = [];
  for (var i = 0; i < 500; ++i) {
    strings[i] = "The end of the beginning? Or the beginning of the end?";
  }

  var regex1 = /beginning/,
      regex2 = /(end of).*(end)/,
      regex3 = /beginnizg/;

  var simpleWrapper = function (regex, string) {
     string.search(regex) > -1;
  };
</script>

Test runner

Ready to run.

Testing in
TestOps/sec
String.search
var list = [];
for (var i = 0; i < strings.length; ++i) {
  var b = strings[i].search(regex1) > -1,
      b2 = strings[i].search(regex2) > -1,
      b3 = strings[i].search(regex3) > -1;
  list.push(b || b2 || b3);
}
ready
String.match
var list = [];
for (var i = 0; i < strings.length; ++i) {
  var b = strings[i].match(regex1) !== null,
      b2 = strings[i].match(regex2) !== null,
      b3 = strings[i].match(regex3) !== null;
  list.push(b || b2 || b3);
}
ready
RegExp.test
var list = [];
for (var i = 0; i < strings.length; ++i) {
  var b = regex1.test(strings[i]),
      b2 = regex2.test(strings[i]),
      b3 = regex3.test(strings[i]);
  list.push(b || b2 || b3);
}
ready
RegExp.exec
var list = [];
for (var i = 0; i < strings.length; ++i) {
  var b = regex1.exec(strings[i]) !== null,
      b2 = regex2.exec(strings[i]) !== null,
      b3 = regex3.exec(strings[i]) !== null;
  list.push(b || b2 || b3);
}
ready
String.search wrapped
var list = [];
for (var i = 0; i < strings.length; ++i) {
  var b = simpleWrapper(regex1, strings[i]),
      b2 = simpleWrapper(regex1, strings[i]),
      b3 = simpleWrapper(regex2, strings[i]);
  list.push(b || b2 || b3);
}
ready

Revisions

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