Skip to content

Instantly share code, notes, and snippets.

@SMotaal
Created January 20, 2019 19:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save SMotaal/aaa5cebe43483bd8cb1808ae05666511 to your computer and use it in GitHub Desktop.
Save SMotaal/aaa5cebe43483bd8cb1808ae05666511 to your computer and use it in GitHub Desktop.
RegExp Methods
browser regexp method time
Chrome /)|/ exec : 6.9599609375ms
Chrome /)|/ [Symbol.search] 6.98681640625ms
Chrome /)(?=|)/ exec 5.283203125ms
Chrome /)(?=|)/ [Symbol.search] 4.552001953125ms
Chrome /(?=)|)./ exec 4.844970703125ms
Chrome /(?=)|)./ [Symbol.search] 5.030029296875ms
Chrome /(?=)|)/ exec 4.688232421875ms
Chrome /(?=)|)/ [Symbol.search] 4.72802734375ms
Chrome /)|/ exec 6.59814453125ms
Chrome /)|/ [Symbol.search] 6.81494140625ms
Chrome /)(?=|)/ exec 4.62109375ms
Chrome /)(?=|)/ [Symbol.search] 5.244873046875ms
Chrome /(?=)|)./ exec 4.68994140625ms
Chrome /(?=)|)./ [Symbol.search] 4.987060546875ms
Chrome /(?=)|)/ exec 4.8359375ms
Chrome /(?=)|)/ [Symbol.search] 4.64697265625ms
browser regexp method time
Safari /)|/ exec 11.622ms
Safari /)|/ [Symbol.search] 12.410ms
Safari /)(?=|)/ exec 11.758ms
Safari /)(?=|)/ [Symbol.search] 14.328ms
Safari /(?=)|)./ exec 14.693ms
Safari /(?=)|)./ [Symbol.search] 13.624ms
Safari /(?=)|)/ exec 11.157ms
Safari /(?=)|)/ [Symbol.search] 11.330ms
Safari /)|/ exec 9.926ms
Safari /)|/ [Symbol.search] 8.585ms
Safari /)(?=|)/ exec 9.450ms
Safari /)(?=|)/ [Symbol.search] 10.328ms
Safari /(?=)|)./ exec 13.013ms
Safari /(?=)|)./ [Symbol.search] 12.637ms
Safari /(?=)|)/ exec 10.045ms
Safari /(?=)|)/ [Symbol.search] 10.953ms
browser regexp method time
Firefox /)|/ exec 6ms
Firefox /)|/ [Symbol.search] 6ms
Firefox /)(?=|)/ exec 5ms
Firefox /)(?=|)/ [Symbol.search] 4ms
Firefox /(?=)|)./ exec 4ms
Firefox /(?=)|)./ [Symbol.search] 20ms
Firefox /(?=)|)/ exec 5ms
Firefox /(?=)|)/ [Symbol.search] 5ms
Firefox /)|/ exec 6ms
Firefox /)|/ [Symbol.search] 4ms
Firefox /)(?=|)/ exec 5ms
Firefox /)(?=|)/ [Symbol.search] 5ms
Firefox /(?=)|)./ exec 4ms
Firefox /(?=)|)./ [Symbol.search] 5ms
Firefox /(?=)|)/ exec 4ms
Firefox /(?=)|)/ [Symbol.search] 5ms
(({m = ['exec', Symbol.search], s = 'abc(def)', r = [/\)\|/, /\)(?=\|)/, /(?=\)\|)./, /(?=\)\|)/], c = 1000, n, v, k, i, o, t, a} = {}, {time, timeEnd} = console) => {
o = {};
[a] = /chrome|safari|firefox|node/i.exec(this && this.navigator && this.navigator.userAgent || (typeof process === 'object' && 'Node'));
for (const rx of r.concat(r)) {
for (const mx of m) {
n = c; i = 0;
if (!rx[mx] || !(k = `| ${a} | ${rx}${rx.flags} | ${rx[mx].name} |`)) continue;
let r = new RegExp(rx.source, rx.flags);
time(k);
while (n--) (v = r[mx](`${s.repeat(i++)}|`));
timeEnd(k); o[k] = {s, r: rx, i, v};
}
}
return o;})({n: 5000})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment