49 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| diff --git a/lib/rules/no-useless-escape.js b/lib/rules/no-useless-escape.js
 | |
| index 0e0f6f09f2c35f3276173c08f832cde9f2cf56a0..7dc22851715f3574d935f513c1b5e35552985711 100644
 | |
| --- a/lib/rules/no-useless-escape.js
 | |
| +++ b/lib/rules/no-useless-escape.js
 | |
| @@ -65,13 +65,31 @@ module.exports = {
 | |
|              escapeBackslash: "Replace the `\\` with `\\\\` to include the actual backslash character."
 | |
|          },
 | |
| 
 | |
| -        schema: []
 | |
| +        schema: [{
 | |
| +            type: "object",
 | |
| +            properties: {
 | |
| +                extra: {
 | |
| +                    type: "string",
 | |
| +                    default: ""
 | |
| +                },
 | |
| +                extraCharClass: {
 | |
| +                    type: "string",
 | |
| +                    default: ""
 | |
| +                },
 | |
| +            },
 | |
| +            additionalProperties: false
 | |
| +        }]
 | |
|      },
 | |
| 
 | |
|      create(context) {
 | |
| +        const options = context.options[0] || {};
 | |
| +        const { extra, extraCharClass } = options;
 | |
|          const sourceCode = context.sourceCode;
 | |
|          const parser = new RegExpParser();
 | |
| 
 | |
| +        const NON_CHARCLASS_ESCAPES = union(REGEX_NON_CHARCLASS_ESCAPES, new Set(extra));
 | |
| +        const CHARCLASS_ESCAPES = union(REGEX_GENERAL_ESCAPES, new Set(extraCharClass));
 | |
| +
 | |
|          /**
 | |
|           * Reports a node
 | |
|           * @param {ASTNode} node The node to report
 | |
| @@ -200,9 +218,9 @@ module.exports = {
 | |
|                      let allowedEscapes;
 | |
| 
 | |
|                      if (characterClassStack.length) {
 | |
| -                        allowedEscapes = unicodeSets ? REGEX_CLASSSET_CHARACTER_ESCAPES : REGEX_GENERAL_ESCAPES;
 | |
| +                        allowedEscapes = unicodeSets ? REGEX_CLASSSET_CHARACTER_ESCAPES : CHARCLASS_ESCAPES;
 | |
|                      } else {
 | |
| -                        allowedEscapes = REGEX_NON_CHARCLASS_ESCAPES;
 | |
| +                        allowedEscapes = NON_CHARCLASS_ESCAPES;
 | |
|                      }
 | |
|                      if (allowedEscapes.has(escapedChar)) {
 | |
|                          return;
 |