Tests:
  • string.replace

    AخA
     
    const s = 'Apple  Apple  Apple  Apple  Apple';
    const r = new RegExp('(^|\\P{L})(Apple)($|\\P{L})', 'giu');
    s.replace(r, '*****');
  • regexp.matchAll

     
    const s = 'Apple  Apple  Apple  Apple  Apple';
    const r = new RegExp('(^|\\P{L})(Apple)($|\\P{L})', 'giu');
    const n = [];
    const matches = [...s.matchAll(r)];
    matches.forEach((match) => {
      // do something
      // n.push(match.index);
    });
  • regexp.exec

     
    const s = 'Apple  Apple  Apple  Apple  Apple';
    const r = new RegExp('(^|\\P{L})(Apple)($|\\P{L})', 'giu');
    const n = [];
    let execResults;
    while ((execResults = r.exec(s)) !== null) {
      // do something
      // n.push(execResults.index);
    }
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    string.replace
    regexp.matchAll
    regexp.exec

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: one month ago)
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36
Chrome 134 on Windows
View result in a separate tab
Test name Executions per second
string.replace 4464464.0 Ops/sec
regexp.matchAll 1400121.5 Ops/sec
regexp.exec 2547809.5 Ops/sec