Skip to content

Latest commit

 

History

History
129 lines (91 loc) · 2.54 KB

prefer-range.md

File metadata and controls

129 lines (91 loc) · 2.54 KB
pageClass sidebarDepth title description since
rule-details
0
regexp/prefer-range
enforce using character class range
v0.4.0

regexp/prefer-range

💼 This rule is enabled in the ✅ plugin:regexp/recommended config.

🔧 This rule is automatically fixable by the --fix CLI option.

enforce using character class range

📖 Rule Details

This rule is aimed to use ranges instead of multiple adjacent characters in character class.

/* eslint regexp/prefer-range: "error" */

/* ✓ GOOD */
var foo = /[0-9]/
var foo = /[a-f]/

/* ✗ BAD */
var foo = /[123456]/
var foo = /[a-cd-f]/

🔧 Options

{
  "regexp/prefer-range": ["error",
    {
      "target": "alphanumeric" // or "all" or [...]
    }
  ]
}

This option can be used to override the allowedCharacterRanges setting.

It allows all values that the allowedCharacterRanges setting allows.

"target": "alphanumeric"

/* eslint regexp/prefer-range: ["error", { "target": "alphanumeric" }] */

/* ✓ GOOD */
var foo = /[0-9]/
var foo = /[a-f]/
var foo = /[!-$]/
var foo = /[!"#$]/
var foo = /[😀-😄]/u
var foo = /[😀😁😂😃😄]/u

/* ✗ BAD */
var foo = /[123456]/
var foo = /[a-cd-f]/

"target": "all"

/* eslint regexp/prefer-range: ["error", { "target": "all" }] */

/* ✓ GOOD */
var foo = /[0-9]/
var foo = /[a-f]/
var foo = /[!-$]/
var foo = /[😀-😄]/u

/* ✗ BAD */
var foo = /[123456]/
var foo = /[a-cd-f]/
var foo = /[!"#$]/
var foo = /[😀😁😂😃😄]/u

"target": [ "alphanumeric", "😀-😏" ]

/* eslint regexp/prefer-range: ["error", { "target": [ "alphanumeric", "😀-😏" ] }] */

/* ✓ GOOD */
var foo = /[0-9]/
var foo = /[a-f]/
var foo = /[!-$]/
var foo = /[!"#$]/
var foo = /[😀-😄]/u

/* ✗ BAD */
var foo = /[123456]/
var foo = /[a-cd-f]/
var foo = /[😀😁😂😃😄]/u

🚀 Version

This rule was introduced in eslint-plugin-regexp v0.4.0

🔍 Implementation