RegExp.prototype.unicodeSets

unicodeSetsRegExp 实例的访问器属性,它返回此正则表达式是否使用 v 标志。

描述

如果使用了 v 标志,则 RegExp.prototype.unicodeSets 的值为 true;否则为 falsev 标志是对 u 标志的“升级”,它启用了更多与 Unicode 相关的功能。(“v”是字母表中“u”后面的下一个字母。)因为 uv 以不兼容的方式解释相同的正则表达式,所以使用这两个标志会导致 SyntaxError。使用 v 标志,您可以获得 u 标志描述中提到的所有功能,以及

  • \p 转义序列还可以用于匹配字符串的属性,而不仅仅是字符。
  • 字符类 语法已升级,允许使用交集、并集和减法语法,以及匹配多个 Unicode 字符。
  • 字符类补集语法 [^...] 构造一个补集类,而不是否定匹配结果,避免了在不区分大小写的匹配中出现一些令人困惑的行为。有关更多信息,请参阅 补集类和不区分大小写的匹配

一些有效的 u 模式正则表达式在 v 模式下变得无效。具体来说,字符类语法不同,某些字符不能再以字面形式出现。有关更多信息,请参阅 v 模式字符类

注意:v 模式不会将音节群解释为单个字符;它们仍然是多个代码点。例如,/[🇺🇳]/v 仍然能够匹配 "🇺"

unicodeSets 的设置访问器为 undefined。您不能直接更改此属性。

示例

使用 unicodeSets 属性

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

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

规范

规范
ECMAScript 语言规范
# sec-get-regexp.prototype.unicodesets

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅