RegExp.prototype.unicodeSets
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2023.
Thuộc tính accessor unicodeSets của các instance RegExp trả về liệu cờ v có được sử dụng với biểu thức chính quy này hay không.
Try it
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
Mô tả
RegExp.prototype.unicodeSets có giá trị true nếu cờ v được sử dụng; ngược lại là false. Cờ v là "nâng cấp" của cờ u bật thêm nhiều tính năng liên quan đến Unicode. ("v" là chữ cái tiếp theo sau "u" trong bảng chữ cái.) Vì u và v diễn giải cùng một regex theo những cách không tương thích, sử dụng cả hai cờ dẫn đến SyntaxError. Với cờ v, bạn nhận được tất cả các tính năng được đề cập trong mô tả cờ u, cộng thêm:
- Chuỗi escape
\pcó thể được sử dụng thêm để khớp với các thuộc tính của chuỗi, thay vì chỉ ký tự. - Cú pháp lớp ký tự được nâng cấp để cho phép cú pháp giao, hợp, và trừ, cũng như khớp với nhiều ký tự Unicode.
- Cú pháp bổ sung lớp ký tự
[^...]tạo ra một lớp bổ sung thay vì phủ định kết quả khớp, tránh một số hành vi khó hiểu với khớp không phân biệt hoa/thường. Để biết thêm thông tin, xem Lớp bổ sung và khớp không phân biệt hoa/thường.
Một số regex hợp lệ trong chế độ u trở nên không hợp lệ trong chế độ v. Cụ thể, cú pháp lớp ký tự khác nhau và một số ký tự không còn có thể xuất hiện theo nghĩa đen. Để biết thêm thông tin, xem lớp ký tự chế độ v.
Note:
Chế độ v không diễn giải các cụm grapheme là các ký tự đơn; chúng vẫn là nhiều điểm mã. Ví dụ: /[🇺🇳]/v vẫn có thể khớp với "🇺".
Accessor set của unicodeSets là undefined. Bạn không thể thay đổi thuộc tính này trực tiếp.
Ví dụ
>Sử dụng thuộc tính unicodeSets
const regex = /[\p{Script_Extensions=Greek}&&\p{Letter}]/v;
console.log(regex.unicodeSets); // true
Đặc tả kỹ thuật
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-get-regexp.prototype.unicodesets> |
Tương thích trình duyệt
Xem thêm
RegExp.prototype.lastIndexRegExp.prototype.dotAllRegExp.prototype.globalRegExp.prototype.hasIndicesRegExp.prototype.ignoreCaseRegExp.prototype.multilineRegExp.prototype.sourceRegExp.prototype.stickyRegExp.prototype.unicode- RegExp v flag with set notation and properties of strings trên v8.dev (2022)