src/content/docs/linter/rules/use-unicode-regex.mdx
import { Tabs, TabItem } from '@astrojs/starlight/components';
<Tabs> <TabItem label="JavaScript (and super languages)" icon="seti:javascript"> :::caution This rule is part of the [nursery](/linter/#nursery) group. This means that it is experimental and the behavior can change at any time. ::: ## Summary - Rule available since: `v2.4.5` - Diagnostic Category: [`lint/nursery/useUnicodeRegex`](/reference/diagnostics#diagnostic-category) - This rule has a [**safe**](/linter/#safe-fixes) fix. - The default severity of this rule is [**information**](/reference/diagnostics#information). - Sources: - Same as [`require-unicode-regexp`](https://eslint.org/docs/latest/rules/require-unicode-regexp){
"linter": {
"rules": {
"nursery": {
"useUnicodeRegex": "error"
}
}
}
}
Enforce the use of the u or v flag for regular expressions.
The u flag (Unicode mode) and v flag (Unicode Sets mode) enable proper handling
of Unicode characters in regular expressions. Without these flags, regex patterns
may not correctly match Unicode characters like emoji or characters outside the
Basic Multilingual Plane.
The u flag was introduced in ES2015 and enables:
\u{...})The v flag was introduced in ES2024 and provides all u flag features plus:
/foo/;
/foo/gi;
new RegExp("foo");
new RegExp("foo", "gi");
/foo/u;
/foo/v;
/foo/giu;
new RegExp("foo", "u");
new RegExp("foo", "giv");
new RegExp("foo", flags); // dynamic flags are ignored