Sha256: 8fadabb65652ab9cf76bfc133281c69eba5a5efa17a427ff0b62ed8282a31004
Contents?: true
Size: 1.6 KB
Versions: 2
Compression:
Stored size: 1.6 KB
Contents
/** * @fileoverview Rule to forbid control charactes from regular expressions. * @author Nicholas C. Zakas */ "use strict"; //------------------------------------------------------------------------------ // Rule Definition //------------------------------------------------------------------------------ module.exports = function(context) { /** * Get the regex expression * @param {ASTNode} node node to evaluate * @returns {*} Regex if found else null * @private */ function getRegExp(node) { if (node.value instanceof RegExp) { return node.value; } else if (typeof node.value === "string") { var parent = context.getAncestors().pop(); if ((parent.type === "NewExpression" || parent.type === "CallExpression") && parent.callee.type === "Identifier" && parent.callee.name === "RegExp") { // there could be an invalid regular expression string try { return new RegExp(node.value); } catch (ex) { return null; } } } else { return null; } } return { "Literal": function(node) { var computedValue, regex = getRegExp(node); if (regex) { computedValue = regex.toString(); if (/[\x00-\x1f]/.test(computedValue)) { context.report(node, "Unexpected control character in regular expression."); } } } }; }; module.exports.schema = [];
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
eslint_node_modules-1.6.0.1 | vendor/node_modules/eslint/lib/rules/no-control-regex.js |
eslint_node_modules-1.6.0 | vendor/node_modules/eslint/lib/rules/no-control-regex.js |