RegExp.prototype.unicodeSets
Baseline Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.
Свойство доступа unicodeSets экземпляров RegExp возвращает, используется ли флаг v с этим регулярным выражением.
Попробовать
const regex1 = /[\p{Lowercase}&&\p{Script=Greek}]/;
const regex2 = /[\p{Lowercase}&&\p{Script=Greek}]/v;
console.log(regex1.unicodeSets);
// Expected output: false
console.log(regex2.unicodeSets);
// Expected output: true
Описание
RegExp.prototype.unicodeSets имеет значение true, если использовался флаг v; в противном случае — false. Флаг v является "обновлением" флага u, который включает больше функций, связанных с Unicode. ("v" — следующая буква после "u" в алфавите.) Поскольку u и v интерпретируют одно и то же регулярное выражение несовместимым образом, использование обоих флагов приводит к SyntaxError. С флагом v вы получаете все функции, упомянутые в описании флага u, плюс:
- Экранирование
\pможет дополнительно использоваться для сопоставления свойств строк, а не только символов. - Синтаксис классов символов обновлен для поддержки синтаксиса пересечения, объединения и вычитания, а также для сопоставления нескольких символов Unicode.
- Синтаксис дополнения класса символов
[^...]создает дополненный класс вместо инвертирования результата сопоставления, избегая некоторых запутанных поведений при сопоставлении без учета регистра. Дополнительную информацию см. в разделе Дополненные классы и сопоставление без учета регистра.
Некоторые допустимые регулярные выражения в режиме u становятся недопустимыми в режиме v. В частности, синтаксис класса символов отличается, и некоторые символы больше не могут появляться буквально. Дополнительную информацию см. в разделе Класс символов в режиме v.
Примечание: Режим v не интерпретирует графемные кластеры как отдельные символы; они по-прежнему представляют собой несколько кодовых точек. Например, /[🇺🇳]/v по-прежнему может соответствовать "🇺".
Сеттер свойства unicodeSets является undefined. Вы не можете изменить это свойство напрямую.
Примеры
Использование свойства unicodeSets
const regex = /[\p{Script_Extensions=Greek}&&\p{Letter}]/v;
console.log(regex.unicodeSets); // true
Спецификации
Совместимость с браузерами
| Настольные компьютеры | Мобильные устройства | Сервер | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | Bun | Deno | Node.js | |
unicodeSets |
112 |
112 |
116 |
98 |
17 |
112 |
116 |
75 |
17 |
23.0 |
112 |
17 |
1.0.0 |
1.32 |
20.0.0 |
См. также
RegExp.prototype.lastIndexRegExp.prototype.dotAllRegExp.prototype.globalRegExp.prototype.hasIndicesRegExp.prototype.ignoreCaseRegExp.prototype.multilineRegExp.prototype.sourceRegExp.prototype.stickyRegExp.prototype.unicode- Флаг RegExp v с нотацией наборов и свойствами строк на v8.dev (2022)
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/unicodeSets