docs.rodeo

MDN Web Docs mirror

RegExp.prototype.unicodeSets

{{JSRef}} 

The unicodeSets accessor property of {{jsxref("RegExp")}}  instances returns whether or not the v flag is used with this regular expression.

{{InteractiveExample("JavaScript Demo: RegExp.prototype.unicodeSets")}} 

const regex1 = new RegExp("[\\p{Lowercase}&&\\p{Script=Greek}]");
const regex2 = new RegExp("[\\p{Lowercase}&&\\p{Script=Greek}]", "v");

console.log(regex1.unicodeSets);
// Expected output: false

console.log(regex2.unicodeSets);
// Expected output: true

Description

RegExp.prototype.unicodeSets has the value true if the v flag was used; otherwise, false. The v flag is an “upgrade” to the u flag that enables more Unicode-related features. (“v” is the next letter after “u” in the alphabet.) Because u and v interpret the same regex in incompatible ways, using both flags results in a {{jsxref("SyntaxError")}} . With the v flag, you get all features mentioned in the u flag description, plus:

Some valid u-mode regexes become invalid in v-mode. Specifically, the character class syntax is different and some characters can no longer appear literally. For more information, see v-mode character class.

[!NOTE] The v mode does not interpret grapheme clusters as single characters; they are still multiple code points. For example, /[🇺🇳]/v is still able to match "🇺".

The set accessor of unicodeSets is undefined. You cannot change this property directly.

Examples

Using the unicodeSets property

const regex = /[\p{Script_Extensions=Greek}&&\p{Letter}]/v;

console.log(regex.unicodeSets); // true

Specifications

{{Specifications}} 

Browser compatibility

{{Compat}} 

See also

In this article

View on MDN