@putout/plugin-regexp
v9.0.0
Published
🐊Putout plugin helps with regexp
Downloads
59,397
Maintainers
Readme
@putout/plugin-regexp
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
- ✅ apply-ends-with;
- ✅ apply-literal-notation;
- ✅ apply-starts-with;
- ✅ convert-replace-to-replace-all;
- ✅ convert-to-string;
- ✅ optimize;
- ✅ remove-useless-group;
- ✅ remove-useless-regexp;
- ✅ types.js;
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, returningtrue
orfalse
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, returningtrue
orfalse
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