eslint-plugin-escape
Autofixable escaping for non-printable and non-ASCII characters in strings.
Installation
You'll first need to install ESLint:
$ npm i eslint --save-devNext, install eslint-plugin-escape:
$ npm i eslint-plugin-escape --save-devUsage
Add escape to the plugins section of your .eslintrc configuration file. You can omit the eslint-plugin- prefix:
{
"plugins": ["escape"]
}Then configure the rules you want to use under the rules section.
{
"rules": {
"escape/escape": ["error", "non-printable"]
}
}Options
This rule has two options, a string option and an object option.
String option:
"non-printable"(default) requires non-printable characters to be escaped"non-ascii"requires non-ASCII characters to be escaped
Object option:
"exact": truerequires an exact formatting- use the shortest possible form (but never octal)
- don't escape unnecessarily
- use lower case hexadecimal escape codes
non-printable
The "non-printable" option requires non-printable characters to be escaped inside of all strings. This is the default option.
Because they're non-printable, it's difficult to demonstrate the problem.
Instead, here are examples of correct code for this rule with the default "non-printable" option:
/* eslint escape/escape: ["error", "non-printable"] */
var nullCharacter = "\0";
var distance = "100\xa0km";non-ascii
Examples of incorrect code for this rule with the "non-ascii" option:
/* eslint escape/escape: ["error", "non-ascii"] */
var greeting = "¡Héłlõ, wöŕlð!";Examples of correct code for this rule with the "non-ascii" option:
/* eslint escape/escape: ["error", "non-ascii"] */
var greeting = "\xa1H\xe9\u0142l\xf5, w\xf6\u0155l\xf0!";
var distance = "100\xa0km";exact
Examples of incorrect code for this rule with the "non-ascii", { "exact": true } options:
/* eslint escape/escape: ["error", "non-ascii", { "exact": true }] */
var space = "\x20";
var newline = "\u000a";
var replacement = "\uFFFD";Examples of correct code for this rule with the "non-ascii", { "exact": true } options:
/* eslint escape/escape: ["error", "non-ascii", { "exact": true }] */
var space = " ";
var newline = "\n";
var replacement = "\ufffd";License
Copyright Dan Wolff, MPL 2.0