JSPM

  • Created
  • Published
  • Downloads 619090
  • Score
    100M100P100Q194087F
  • License MIT

ESLint plugin for finding RegExp mistakes and RegExp style guide violations.

Package Exports

  • eslint-plugin-regexp

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (eslint-plugin-regexp) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Introduction

eslint-plugin-regexp is ESLint plugin for finding RegExp mistakes and RegExp style guide violations.

NPM license NPM version NPM downloads NPM downloads NPM downloads NPM downloads NPM downloads Build Status Coverage Status

📛 Features

This ESLint plugin provides linting rules relate to better ways to help you avoid problems when using RegExp.

  • Find the wrong usage of regular expressions, and their hints.
  • Enforces a consistent style of regular expressions.
  • Find hints for writing optimized regular expressions.

You can check on the Online DEMO.

📖 Documentation

See documents.

💿 Installation

npm install --save-dev eslint eslint-plugin-regexp

Requirements

  • ESLint v6.0.0 and above
  • Node.js v8.10.0 and above

📖 Usage

Create .eslintrc.* file to configure rules. See also: http://eslint.org/docs/user-guide/configuring.

Example .eslintrc.js:

module.exports = {
  extends: [
    // add more generic rulesets here, such as:
    // 'eslint:recommended',
    'plugin:regexp/recommended'
  ],
  rules: {
    // override/add rules settings here, such as:
    // 'regexp/rule-name': 'error'
  }
}

Configuration

This plugin provides one config:

✅ Rules

The --fix option on the command line automatically fixes problems reported by rules which have a wrench 🔧 below.
The rules with the following star ⭐ are included in the plugin:regexp/recommended config.

Rule ID Description
regexp/letter-case enforce into your favorite case 🔧
regexp/match-any enforce match any character style ⭐🔧
regexp/negation enforce use of escapes on negation 🔧
regexp/no-assertion-capturing-group disallow capturing group that captures assertions.
regexp/no-dupe-characters-character-class disallow duplicate characters in the RegExp character class
regexp/no-dupe-disjunctions disallow duplicate disjunctions
regexp/no-empty-group disallow empty group
regexp/no-empty-lookarounds-assertion disallow empty lookahead assertion or empty lookbehind assertion
regexp/no-escape-backspace disallow escape backspace ([\b])
regexp/no-invisible-character disallow invisible raw character ⭐🔧
regexp/no-legacy-features disallow legacy RegExp features
regexp/no-octal disallow octal escape sequence
regexp/no-unused-capturing-group disallow unused capturing group
regexp/no-useless-backreference disallow useless backreferences in regular expressions
regexp/no-useless-character-class disallow character class with one character 🔧
regexp/no-useless-dollar-replacements disallow useless $ replacements in replacement string
regexp/no-useless-escape disallow unnecessary escape characters in RegExp
regexp/no-useless-exactly-quantifier disallow unnecessary exactly quantifier
regexp/no-useless-non-capturing-group disallow unnecessary Non-capturing group 🔧
regexp/no-useless-non-greedy disallow unnecessary quantifier non-greedy (?) 🔧
regexp/no-useless-range disallow unnecessary range of characters by using a hyphen 🔧
regexp/no-useless-two-nums-quantifier disallow unnecessary {n,m} quantifier
regexp/order-in-character-class enforces elements order in character class 🔧
regexp/prefer-character-class enforce using character class 🔧
regexp/prefer-d enforce using \d ⭐🔧
regexp/prefer-escape-replacement-dollar-char enforces escape of replacement $ character ($$).
regexp/prefer-plus-quantifier enforce using + quantifier ⭐🔧
regexp/prefer-quantifier enforce using quantifier 🔧
regexp/prefer-question-quantifier enforce using ? quantifier ⭐🔧
regexp/prefer-range enforce using character class range 🔧
regexp/prefer-regexp-exec enforce that RegExp#exec is used instead of String#match if no global flag is provided
regexp/prefer-regexp-test enforce that RegExp#test is used instead of String#match and RegExp#exec 🔧
regexp/prefer-star-quantifier enforce using * quantifier ⭐🔧
regexp/prefer-t enforce using \t ⭐🔧
regexp/prefer-unicode-codepoint-escapes enforce use of unicode codepoint escapes 🔧
regexp/prefer-w enforce using \w ⭐🔧

🍻 Contributing

Welcome contributing!

Please use GitHub's Issues/PRs.

Development Tools

  • npm test runs tests and measures coverage.
  • npm run update runs in order to update readme and recommended configuration.

🔒 License

See the LICENSE file for license rights and limitations (MIT).