/** * @fileoverview Rule to check for ambiguous div operator in regexes * @author Matt DuVall */ 'use strict'; //------------------------------------------------------------------------------ // Rule Definition //------------------------------------------------------------------------------ /** @type {import('../types').Rule.RuleModule} */ module.exports = { meta: { type: 'suggestion', docs: { description: 'Disallow equal signs explicitly at the beginning of regular expressions', recommended: false, frozen: true, url: 'https://eslint.org/docs/latest/rules/no-div-regex', }, fixable: 'code', schema: [], messages: { unexpected: "A regular expression literal can be confused with '/='.", }, }, create(context) { const sourceCode = context.sourceCode; return { Literal(node) { const token = sourceCode.getFirstToken(node); if (token.type === 'RegularExpression' && token.value[1] === '=') { context.report({ node, messageId: 'unexpected', fix(fixer) { return fixer.replaceTextRange( [token.range[0] + 1, token.range[0] + 2], '[=]' ); }, }); } }, }; }, };