String.prototype.replaceAll() should not be called with a non-global regular expression
- BAD_REPLACE_ALL_ARG
- Error
- High
- es12
This rule applies when a regular expression without the global flag (g) is used at String.prototype.replaceAll().
Unlike other methods using regular expression, String.prototype.replaceAll() always replaces all matches in the input string. So, it is nonsensical to use a regular expression without the global flag at String.prototype.replaceAll(), which causes a TypeError exception.
Noncompliant Code Example
View with compliant examples side by sideconst withSpaces = "foo bar baz";
const withCommas = withSpaces.replaceAll(/\s+/, ','); // BAD_REPLACE_ALL_ARG alarmCompliant Code Example
View with noncompliant examples side by sideconst withSpaces = "foo bar baz";
const withCommas = withSpaces.replaceAll(/\s+/g, ',');Version
This rule was introduced in DeepScan 1.48.0.
See
Uncaught TypeError: String.prototype.replaceAll called with a non-global RegExp argument