diff --git a/lib/rules/prefer-regex-literals.js b/lib/rules/prefer-regex-literals.js index ac19017fad0..4af9dbf9ae9 100644 --- a/lib/rules/prefer-regex-literals.js +++ b/lib/rules/prefer-regex-literals.js @@ -265,18 +265,23 @@ module.exports = { function resolveEscapes(character) { switch (character) { case "\n": + case "\\\n": return "\\n"; case "\r": + case "\\\r": return "\\r"; case "\t": + case "\\\t": return "\\t"; case "\v": + case "\\\v": return "\\v"; case "\f": + case "\\\f": return "\\f"; case "/": @@ -345,7 +350,7 @@ module.exports = { onCharacterEnter(characterNode) { let changeCharIncrease = 0; let stringCodePointValue = String.fromCodePoint(characterNode.value); - const escaped = resolveEscapes(stringCodePointValue); + const escaped = resolveEscapes(characterNode.raw); if (escaped) { stringCodePointValue = escaped; diff --git a/tests/lib/rules/prefer-regex-literals.js b/tests/lib/rules/prefer-regex-literals.js index 596b77a36fa..3fa293e6e8a 100644 --- a/tests/lib/rules/prefer-regex-literals.js +++ b/tests/lib/rules/prefer-regex-literals.js @@ -2324,6 +2324,20 @@ ruleTester.run("prefer-regex-literals", rule, { ] } ] + }, + { + code: "new RegExp(\"\\u000A\\u000A\");", + errors: [ + { + messageId: "unexpectedRegExp", + suggestions: [ + { + messageId: "unexpectedRegExp", + output: "/\\n\\n/;" + } + ] + } + ] } ] });