Package detail

@putout/plugin-regexp

coderaiser53.3kMIT11.0.0

๐ŸŠPutout plugin helps with regexp

putout, putout-plugin, plugin, regexp

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

Config

{
    "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