diff --git a/lib/rules/prefer-regex-literals.js b/lib/rules/prefer-regex-literals.js index 0c31a9956314..46980ab5d2d5 100644 --- a/lib/rules/prefer-regex-literals.js +++ b/lib/rules/prefer-regex-literals.js @@ -286,7 +286,7 @@ module.exports = { let regexContent = getStringValue(node.arguments[0], scope); if (regexContent && !isStringRawTaggedStaticTemplateLiteral(node.arguments[0])) { - regexContent = regexContent.replace(/\r/gu, "\\r").replace(/\n/gu, "\\n").replace(/\t/gu, "\\t").replace(/\f/gu, "\\f").replace(/\v/gu, "\\v"); + regexContent = regexContent.replace(/\r/gu, "\\r").replace(/\n/gu, "\\n").replace(/\t/gu, "\\t").replace(/\f/gu, "\\f").replace(/\v/gu, "\\v").replace(/\0/u, "\\0"); } const newRegExpValue = `/${regexContent || "(?:)"}/${getStringValue(node.arguments[1], scope) || ""}`; diff --git a/tests/lib/rules/prefer-regex-literals.js b/tests/lib/rules/prefer-regex-literals.js index 9d11af3407f7..4f6dcb543862 100644 --- a/tests/lib/rules/prefer-regex-literals.js +++ b/tests/lib/rules/prefer-regex-literals.js @@ -502,6 +502,11 @@ ruleTester.run("prefer-regex-literals", rule, { output: "/\\0\\0/;", errors: [{ messageId: "unexpectedRegExp" }] }, + { + code: "new RegExp('\\0\\0', 'g');", + output: "/\\0\\0/g;", + errors: [{ messageId: "unexpectedRegExp" }] + }, { code: "RegExp('\\\\0\\\\0\\\\0', '')", output: "/\\0\\0\\0/",