Throw if unexpected value or if flavor is not provided.
Potential implementation: By using e.g. 'JavaScript'+'2024', it sets of bunch of feature flags, and parsing code can check for the feature flags rather than flavor/version. New flavor versions can then just augment existing objects of feature flags.
format - Options: '...' (default), '/.../flags', and maybe others.
'/.../flags' allows:
Applying flags (can change syntax rules).
Highlighting invalid flags/combinations and duplicates.
Changing syntax rules, independent of flags: Only need to escape / in regex literals. Note: ES5 included a change to allow unescaped [/] in regex literals.
Throw if both format and flags are provided.
warningsOn - On by default? Ex: || at top level, range overflow, quantified lookaround, incomplete tokens \c,\x,\u.
compatibilityOn - For differences in behavior for the same syntax across regex flavors (not for when some flavors don't support a feature). Ex: Empty char classes [], [^] (JS), leading unescaped ] in char classes (non-JS).
suggestionsOn - Ex: Use of octals, escaped literals, [0-9] → \d (for flavors where \d is ASCII only), [\S\s] → dot with /s (if /s is active or no existing dots).
Render whitespace characters.
Add replacement text highlighting (also accepts options argument, with flavor, version, format).
v
(ES2024).options
argument used bycolorizeAll
andcolorizePattern
:flavor
- Ex:'JavaScript'
,'EMCAScript'
(alternative name:'JavaScript-WithoutWebReality'
),'PCRE'
,'XRegExp'
.'JavaScript'
.version
is not provided.version
- Regex flavor version. Ex: JavaScript/ECMAScript:'3'
,'5'
,'2024'
; PCRE:'8.45'
,'10.39'
.'latest'
.flavor
is not provided.'JavaScript'
+'2024'
, it sets of bunch of feature flags, and parsing code can check for the feature flags rather than flavor/version. New flavor versions can then just augment existing objects of feature flags.format
- Options:'...'
(default),'/.../flags'
, and maybe others.'/.../flags'
allows:/
in regex literals. Note: ES5 included a change to allow unescaped[/]
in regex literals.format
andflags
are provided.warningsOn
- On by default? Ex:||
at top level, range overflow, quantified lookaround, incomplete tokens\c
,\x
,\u
.compatibilityOn
- For differences in behavior for the same syntax across regex flavors (not for when some flavors don't support a feature). Ex: Empty char classes[]
,[^]
(JS), leading unescaped]
in char classes (non-JS).suggestionsOn
- Ex: Use of octals, escaped literals,[0-9]
→\d
(for flavors where\d
is ASCII only),[\S\s]
→ dot with/s
(if/s
is active or no existing dots).options
argument, withflavor
,version
,format
).