Spec-Zone.ru › JavaScript

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

Спецификации

Спецификация
Спецификация языка ECMAScript® 2027
# sec-get-regexp.prototype.unicodesets

Совместимость с браузерами

Настольные компьютеры Мобильные устройства Сервер
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.lastIndex
  • RegExp.prototype.dotAll
  • RegExp.prototype.global
  • RegExp.prototype.hasIndices
  • RegExp.prototype.ignoreCase
  • RegExp.prototype.multiline
  • RegExp.prototype.source
  • RegExp.prototype.sticky
  • RegExp.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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API