@putout/plugin-regexp

8.0.0 • Public • Published

@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

Package Sidebar

Install

npm i @putout/plugin-regexp

Weekly Downloads

6,132

Version

8.0.0

License

MIT

Unpacked Size

17.6 kB

Total Files

13

Last publish

Collaborators

  • coderaiser