RegExp#exec
over String#match
(prefer-regexp-exec)RegExp#exec
is faster than String#match
and both work the same when not using the /g
flag.
This rule is aimed at enforcing the more performant way of applying regular expressions on strings.
From String#match
on MDN:
If the regular expression does not include the g flag, returns the same result as RegExp.exec().
From Stack Overflow
RegExp.prototype.exec
is a lot faster thanString.prototype.match
, but that’s because they are not exactly the same thing, they are different.
Examples of incorrect code for this rule:
'something'.match(/thing/); 'some things are just things'.match(/thing/); const text = 'something'; const search = /thing/; text.match(search);
Examples of correct code for this rule:
/thing/.exec('something'); 'some things are just things'.match(/thing/g); const text = 'something'; const search = /thing/; search.exec(text);
There are no options.
{ "@typescript-eslint/prefer-regexp-exec": "error" }
If you prefer consistent use of String#match
for both, with g
flag and without it, you can turn this rule off.