Baseline 2023
Newly available
The unicodeSets
accessor property of RegExp
instances returns whether or not the v
flag is used with this regular expression.
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
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 SyntaxError
. With the v
flag, you get all features mentioned in the u
flag description, plus:
\p
escape sequence can be additionally used to match properties of strings, instead of just characters.[^...]
constructs a complement class instead of negating the match result, avoiding some confusing behaviors with case-insensitive matching. For more information, see Complement classes and case-insensitive matching.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.
const regex = /[\p{Script_Extensions=Greek}&&\p{Letter}]/v;
console.log(regex.unicodeSets); // true
Specifications Browser compatibility See also
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4