Skip to content

Commit 05ed60e

Browse files
fix(eslint-plugin): [prefer-regexp-exec] skip malformed regexes (typescript-eslint#6935)
Skip malformed regular expressions
1 parent 4f3750f commit 05ed60e

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

packages/eslint-plugin/src/rules/prefer-regexp-exec.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,12 @@ export default createRule({
125125
argumentNode.type === AST_NODE_TYPES.Literal &&
126126
typeof argumentNode.value === 'string'
127127
) {
128-
const regExp = RegExp(argumentNode.value);
128+
let regExp: RegExp;
129+
try {
130+
regExp = RegExp(argumentNode.value);
131+
} catch {
132+
return;
133+
}
129134
return context.report({
130135
node: memberNode.property,
131136
messageId: 'regExpExecOverStringMatch',

packages/eslint-plugin/tests/rules/prefer-regexp-exec.test.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,12 @@ const matchCount = (str: string, re: RegExp) => {
7474
return (str.match(re) || []).length;
7575
};
7676
`,
77+
// https://github.com/typescript-eslint/typescript-eslint/issues/6928
78+
`
79+
function test(str: string) {
80+
str.match('[a-z');
81+
}
82+
`,
7783
],
7884
invalid: [
7985
{

0 commit comments

Comments
 (0)