Skip to content

eslint/no-useless-escape Correctness

This rule is turned on by default.
🛠️ An auto-fix is available for this rule.

What it does

Disallow unnecessary escape characters.

Why is this bad?

Escaping characters unnecessarily has no effect on the behavior of strings or regexes, and can make code harder to read and understand by adding unnecessary complexity. This applies to string literals, template literals, and regular expressions.

Examples

Examples of incorrect code for this rule:

javascript
/*eslint no-useless-escape: "error"*/

"'";
"\"";
"\#";
"\e";
`\"`;
`\"${foo}\"`;
`\#{foo}`;
/\!/;
/\@/;
/[\[]/;
/[a-z\-]/;

Examples of correct code for this rule:

javascript
/*eslint no-useless-escape: "error"*/

"\"";
"'";
"\x12";
"\u00a9";
"\371";
"xs\u2111";
`\``;
`\${${foo}}`;
`$\{${foo}}`;
/\\/g;
/\t/g;
/\w\$\*\^\./;
/[[]/;
/[\]]/;
/[a-z-]/;

Configuration

This rule accepts a configuration object with the following properties:

allowRegexCharacters

type: string[]

default: []

An array of characters that are allowed to be escaped unnecessarily in regexes.

How to use

To enable this rule in the CLI or using the config file, you can use:

bash
oxlint --deny no-useless-escape
json
{
  "rules": {
    "no-useless-escape": "error"
  }
}

References

Released under the MIT License.