String.prototype.matchAll()
should be called with a global regular expression
- BAD_MATCH_ALL_ARG
- Error
- High
- es11
This rule applies when a regular expression without the global flag (g
) is used at String.prototype.matchAll()
.
Unlike other methods using regular expression, String.prototype.matchAll()
always finds all matches in the input string and returns an iterator of the matches including the capturing groups. So, it is nonsensical to use a regular expression without the global flag at String.prototype.matchAll()
, which causes a TypeError
exception.
Noncompliant Code Example
View with compliant examples side by sideconst line = "x:0, y:42";
let numberMatches = line.matchAll(/\d+/); // BAD_MATCH_ALL_ARG alarm
Compliant Code Example
View with noncompliant examples side by sideconst line = "x:0, y:42";
let numberMatches = line.matchAll(/\d+/g);
Version
This rule was introduced in DeepScan 1.44.0.
See
Uncaught TypeError: String.prototype.matchAll called with a non-global RegExp argument