src/content/docs/linter/rules/no-misleading-character-class.mdx
import { Tabs, TabItem } from '@astrojs/starlight/components';
<Tabs> <TabItem label="JavaScript (and super languages)" icon="seti:javascript"> ## Summary - Rule available since: `v1.5.0` - Diagnostic Category: [`lint/suspicious/noMisleadingCharacterClass`](/reference/diagnostics#diagnostic-category) - This rule is **recommended**, meaning it is enabled by default. - This rule has a [**safe**](/linter/#safe-fixes) fix. - The default severity of this rule is [**error**](/reference/diagnostics#error). - Sources: - Same as [`no-misleading-character-class`](https://eslint.org/docs/latest/rules/no-misleading-character-class){
"linter": {
"rules": {
"suspicious": {
"noMisleadingCharacterClass": "error"
}
}
}
}
Disallow characters made with multiple code points in character class syntax.
Unicode includes the characters which are made with multiple code points. e.g. Á, 🇯🇵, 👨👩👦.
A RegExp character class /[abc]/ cannot handle characters with multiple code points.
For example, the character ❇️ consists of two code points: ❇ (U+2747) and VARIATION SELECTOR-16 (U+FE0F).
If this character is in a RegExp character class, it will match to either ❇ or VARIATION SELECTOR-16 rather than ❇️.
This rule reports the regular expression literals which include multiple code point characters in character class syntax.
/^[Á]$/u;
/^[❇️]$/u;
/^[👶🏻]$/u;
/^[🇯🇵]$/u;
/^[👨👩👦]$/u;
/^[👍]$/; // surrogate pair without u flag
/^[abc]$/;
/^[👍]$/u;
/^[\q{👶🏻}]$/v;