JSPM

  • Created
  • Published
  • Downloads 12409
  • Score
    100M100P100Q138898F
  • License MIT

🐊Putout plugin helps with regexp

Package Exports

  • @putout/plugin-regexp
  • @putout/plugin-regexp/lib/index.js

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 (@putout/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

@putout/plugin-regexp NPM version

Regular expressions are patterns used to match character combinations in strings.

(c) MDN

🐊Putout plugin helps with Regular Expressions.

Install

npm i @putout/plugin-regexp -D

Rules

{
    "rules": {
        "regexp/apply-literal-notation": "on",
        "regexp/apply-starts-with": "on",
        "regexp/apply-ends-with": "on",
        "regexp/optimize": "on",
        "regexp/convert-to-string": "on",
        "regexp/convert-replace-to-replace-all": "on",
        "regexp/remove-useless-group": "on",
        "regexp/remove-useless-regexp": "on"
    }
}

optimize

❌ Example of incorrect code

const a = /(ab|ab)/;

βœ… Example of correct code

const a = /(ab)/;

apply-literal-notation

❌ Example of incorrect code

const a = new RegExp('hello', 'i');

βœ… Example of correct code

const a = /hello/i;

apply-starts-with

The startsWith() method determines whether a string begins with the characters of a specified string, returning true or false as appropriate.

(c) MDN

RegExp is overkill for such a simple task as determining that string located at the beginning. Check it out in 🐊 Putout Editor.

❌ Example of incorrect code

/^hello/.test(a);

βœ… Example of correct code

a.startsWith('hello');

Comparison

Linter Rule Fix
🐊 Putout regexp/apply-starts-with βœ…
πŸ¦• TypeScript ESLint prefer-string-starts-ends-with βœ…

apply-ends-with

The startsWith() method determines whether a string ends with the characters of a specified string, returning true or false as appropriate.

(c) MDN

RegExp is overkill for such a simple task as determining that string located at the end.

❌ Example of incorrect code

/hello$/.test(a);

βœ… Example of correct code

a.endsWith('hello');

Comparison

Linter Rule Fix
🐊 Putout regexp/apply-ends-with βœ…
πŸ¦• TypeScript ESLint prefer-string-starts-ends-with βœ…

convert-to-string

❌ Example of incorrect code

'hello'.replace(/hello/, 'world');

βœ… Example of correct code

'hello'.replace('hello', 'world');

convert-replace-to-replace-all

Simplify code according to string-replace-all.

❌ Example of incorrect code

'hello'.replace(/hello/g, 'world');

βœ… Example of correct code

'hello'.replaceAll('hello', 'world');

remove-useless-group

❌ Example of incorrect code

/(hello)/.test(str);

βœ… Example of correct code

/hello/.test(str);

remove-useless-regexp

❌ Example of incorrect code

const a = /^\.hello$/.test(str);

βœ… Example of correct code

const a = str === '.hello';

License

MIT