JSPM

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

🐊Putout plugin helps with regexp

Package Exports

    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

    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