@@ -91,6 +91,10 @@ ruleTester.run("no-invalid-regexp", rule, {
9191
9292 // ES2025
9393 "new RegExp('((?<k>a)|(?<k>b))')" ,
94+ "new RegExp('(?ims:foo)')" ,
95+ "new RegExp('(?ims-:foo)')" ,
96+ "new RegExp('(?-ims:foo)')" ,
97+ "new RegExp('(?s-i:foo)')" ,
9498
9599 // allowConstructorFlags
96100 {
@@ -441,6 +445,54 @@ ruleTester.run("no-invalid-regexp", rule, {
441445 data : { message : "Invalid regular expression: /(?<k>a)(?<k>b)/: Duplicate capture group name" } ,
442446 type : "NewExpression"
443447 } ]
448+ } ,
449+ {
450+ code : "new RegExp('(?ii:foo)')" ,
451+ errors : [ {
452+ messageId : "regexMessage" ,
453+ data : { message : "Invalid regular expression: /(?ii:foo)/: Duplicated flag 'i'" } ,
454+ type : "NewExpression"
455+ } ]
456+ } ,
457+ {
458+ code : "new RegExp('(?-ii:foo)')" ,
459+ errors : [ {
460+ messageId : "regexMessage" ,
461+ data : { message : "Invalid regular expression: /(?-ii:foo)/: Duplicated flag 'i'" } ,
462+ type : "NewExpression"
463+ } ]
464+ } ,
465+ {
466+ code : "new RegExp('(?i-i:foo)')" ,
467+ errors : [ {
468+ messageId : "regexMessage" ,
469+ data : { message : "Invalid regular expression: /(?i-i:foo)/: Duplicated flag 'i'" } ,
470+ type : "NewExpression"
471+ } ]
472+ } ,
473+ {
474+ code : "new RegExp('(?-:foo)')" ,
475+ errors : [ {
476+ messageId : "regexMessage" ,
477+ data : { message : "Invalid regular expression: /(?-:foo)/: Invalid empty flags" } ,
478+ type : "NewExpression"
479+ } ]
480+ } ,
481+ {
482+ code : "new RegExp('(?g:foo)')" ,
483+ errors : [ {
484+ messageId : "regexMessage" ,
485+ data : { message : "Invalid regular expression: /(?g:foo)/: Invalid group" } ,
486+ type : "NewExpression"
487+ } ]
488+ } ,
489+ {
490+ code : "new RegExp('(?-u:foo)')" ,
491+ errors : [ {
492+ messageId : "regexMessage" ,
493+ data : { message : "Invalid regular expression: /(?-u:foo)/: Invalid group" } ,
494+ type : "NewExpression"
495+ } ]
444496 }
445497 ]
446498} ) ;
0 commit comments