Source code
Revision control
Copy as Markdown
Other Tools
// Copyright 2024 Mathias Bynens. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
author: Mathias Bynens
description: >
Extended character classes enabled by the RegExp `v` flag support
properties of strings, string literals, and set operations
info: |
Unicode v16.0.0
esid: sec-patterns
features: [regexp-unicode-property-escapes, regexp-v-flag]
includes: [regExpUtils.js]
---*/
testExtendedCharacterClass({
regExp: /^[\p{Emoji_Keycap_Sequence}\p{ASCII_Hex_Digit}]+$/v,
expression: "[\p{Emoji_Keycap_Sequence}\p{ASCII_Hex_Digit}]",
matchStrings: [
"#\uFE0F\u20E3",
"*\uFE0F\u20E3",
"0",
"0\uFE0F\u20E3",
"1",
"1\uFE0F\u20E3",
"2",
"2\uFE0F\u20E3",
"3",
"3\uFE0F\u20E3",
"4",
"4\uFE0F\u20E3",
"5",
"5\uFE0F\u20E3",
"6",
"6\uFE0F\u20E3",
"7",
"7\uFE0F\u20E3",
"8",
"8\uFE0F\u20E3",
"9",
"9\uFE0F\u20E3",
"A",
"B",
"C",
"D",
"E",
"F",
"a",
"b",
"c",
"d",
"e",
"f"
],
nonMatchStrings: [
"\u2603",
"\u{1D306}",
"\u{1F1E7}\u{1F1EA}"
],
});
reportCompare(0, 0);