@putout/plugin-regexp
putout plugin helps whith regexp
Last updated 5 years ago by coderaiser .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install @putout/plugin-regexp 
SYNC missed versions from official npm registry.

@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-character-class": "on",
        "regexp/apply-global-regexp-to-replace-all": "on",
        "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-escape": "on",
        "regexp/remove-useless-regexp": "on",
        "regexp/remove-duplicates-from-character-class": "on"
    }
}

optimize

❌ Example of incorrect code

const a = /(ab|ab)/;

✅ Example of correct code

const a = /(ab)/;

apply-character-class

Checkout in:

❌ Example of incorrect code

/\)|\(/g;

✅ Example of correct code

/[)(]/g;

apply-global-regexp-to-replace-all

Uncaught TypeError: String.prototype.replaceAll called with a non-global RegExp argument

(c) MDN

Checkout in ????Putout Editor.

❌ Example of incorrect code

's'.replaceAll(/hello/, 's');
'abc'.matchAll(/./);

✅ Example of correct code

's'.replaceAll(/hello/g, 's');
'abc'.matchAll(/./g);

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-escape

Checkout in ????Putout Editor.

❌ Example of incorrect code

const cleanText = code.replaceAll(/[,;\(\)]/g, '');

✅ Example of correct code

const cleanText = code.replaceAll(/[,;()]/g, '');

Comparison

Linter Rule Fix
???? Putout regexp/remove-useless-escape
ESLint no-useless-escape

remove-useless-regexp

❌ Example of incorrect code

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

✅ Example of correct code

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

remove-duplicates-from-character-class

Checkout in AST Explorer.

❌ Example of incorrect code

/[aaabb]/.test(str);

✅ Example of correct code

/[ab]/.test(str);

License

MIT

Current Tags

  • 13.5.0                                ...           latest (2 months ago)

56 Versions

  • 13.5.0                                ...           2 months ago
  • 13.4.0                                ...           2 months ago
  • 13.3.0                                ...           2 months ago
  • 13.2.2                                ...           3 months ago
  • 13.2.1                                ...           3 months ago
  • 13.2.0                                ...           3 months ago
  • 13.1.1                                ...           3 months ago
  • 13.1.0                                ...           4 months ago
  • 13.0.0                                ...           4 months ago
  • 12.2.2                                ...           8 months ago
  • 12.2.1                                ...           8 months ago
  • 12.2.0                                ...           8 months ago
  • 12.1.0                                ...           8 months ago
  • 12.0.1                                ...           8 months ago
  • 12.0.0                                ...           8 months ago
  • 11.0.0                                ...           a year ago
  • 10.0.0                                ...           a year ago
  • 9.0.0                                ...           2 years ago
  • 8.0.0                                ...           2 years ago
  • 7.0.0                                ...           3 years ago
  • 6.3.0                                ...           3 years ago
  • 6.2.0                                ...           3 years ago
  • 6.1.0                                ...           3 years ago
  • 6.0.0                                ...           3 years ago
  • 5.5.1                                ...           4 years ago
  • 5.5.0                                ...           4 years ago
  • 5.4.3                                ...           4 years ago
  • 5.4.2                                ...           4 years ago
  • 5.4.1                                ...           4 years ago
  • 5.4.0                                ...           4 years ago
  • 5.3.0                                ...           4 years ago
  • 5.2.0                                ...           4 years ago
  • 5.1.0                                ...           4 years ago
  • 5.0.0                                ...           4 years ago
  • 4.1.0                                ...           4 years ago
  • 4.0.0                                ...           4 years ago
  • 3.0.0                                ...           5 years ago
  • 2.8.0                                ...           5 years ago
  • 2.7.0                                ...           5 years ago
  • 2.6.0                                ...           5 years ago
  • 2.5.1                                ...           5 years ago
  • 2.5.0                                ...           5 years ago
  • 2.4.0                                ...           5 years ago
  • 2.3.4                                ...           5 years ago
  • 2.3.3                                ...           5 years ago
  • 2.3.2                                ...           5 years ago
  • 2.3.1                                ...           5 years ago
  • 2.3.0                                ...           5 years ago
  • 2.2.0                                ...           5 years ago
  • 2.1.0                                ...           5 years ago
  • 2.0.0                                ...           5 years ago
  • 1.3.1                                ...           5 years ago
  • 1.3.0                                ...           5 years ago
  • 1.2.0                                ...           5 years ago
  • 1.1.0                                ...           5 years ago
  • 1.0.0                                ...           5 years ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 2
Last Day 0
Last Week 2
Last Month 0
Dependencies (1)
Dev Dependencies (9)
Dependents (2)

Copyright 2013 - present © cnpmjs.org | Home |