HTML Preparation code:
AخA
 
1
<div id=''></div>
Script Preparation code:
x
 
window.target = 'tEsT';
var data = window.data = [];
const possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
var TOTAL_STRINGS = window.TOTAL_STRINGS = 100000;
function getRandomInt(max) {
    return Math.floor(Math.random() * max);
}
function makeRandomString(len) {
    var text = "";
    for (var i = 0; i < len; i++) {
        text += possible.charAt(getRandomInt(possible.length));
    }
    return text;
}
while (data.length < TOTAL_STRINGS) {
    data.push(makeRandomString(getRandomInt(20)));
}
Tests:
  • Regex outside loop

     
    var regex = new RegExp('^'+window.target,'i');
    window.data.forEach(str => regex.test(str));
  • startsWith()

     
    window.data.forEach(str => str.toLowerCase().startsWith(window.target.toLowerCase()));
  • indexOf()

     
    window.data.forEach(str => str.toLowerCase().indexOf(window.target.toLowerCase()) === 0);
  • localeCompare()

     
    window.data.forEach(str => {
      str.subStr(0,window.target.length).localeCompare(window.target, undefined, { sensitivity: 'base', usage:'search'});
    });
  • Regex inside loop

     
    window.data.forEach(str => {
      (new RegExp('^'+window.target,'i')).test(str);
    });
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Regex outside loop
    startsWith()
    indexOf()
    localeCompare()
    Regex inside loop

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 2 years ago)
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36
Chrome 103 on Windows
View result in a separate tab
Test name Executions per second
Regex outside loop 396.6 Ops/sec
startsWith() 49.2 Ops/sec
indexOf() 44.0 Ops/sec
localeCompare() 0.0 Ops/sec
Regex inside loop 22.3 Ops/sec