RegExp.$1, …, RegExp.$9
Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.
Note:
Tất cả các thuộc tính tĩnh của RegExp hiển thị trạng thái khớp cuối cùng trên toàn cục đều đã bị deprecated. Xem các tính năng RegExp deprecated để biết thêm thông tin.
Các thuộc tính accessor tĩnh RegExp.$1, …, RegExp.$9 trả về các chuỗi con khớp trong ngoặc đơn.
Mô tả
Vì $1–$9 là các thuộc tính tĩnh của RegExp, bạn luôn dùng chúng như RegExp.$1, RegExp.$2, v.v., thay vì như thuộc tính của một đối tượng RegExp bạn đã tạo.
Giá trị của $1, …, $9 cập nhật mỗi khi một instance RegExp (nhưng không phải subclass của RegExp) tạo ra một khớp thành công. Nếu chưa có khớp nào được thực hiện, hoặc nếu lần khớp cuối không có capturing group tương ứng, thuộc tính đó là một chuỗi rỗng. Set accessor của mỗi thuộc tính là undefined, vì vậy bạn không thể thay đổi các thuộc tính này trực tiếp.
Số lượng chuỗi con trong ngoặc đơn có thể là không giới hạn, nhưng đối tượng RegExp chỉ có thể lưu chín cái đầu tiên. Bạn có thể truy cập tất cả các chuỗi con trong ngoặc đơn thông qua chỉ mục của mảng được trả về.
$1, …, $9 cũng có thể được dùng trong chuỗi thay thế của String.prototype.replace(), nhưng điều đó không liên quan đến các thuộc tính legacy RegExp.$n.
Ví dụ
>Sử dụng $n với RegExp.prototype.test()
Script sau sử dụng phương thức RegExp.prototype.test() để lấy một số trong một chuỗi tổng quát.
const str = "Test 24";
const number = /(\d+)/.test(str) ? RegExp.$1 : "0";
number; // "24"
Lưu ý rằng bất kỳ thao tác nào liên quan đến việc sử dụng các regular expression khác giữa lời gọi re.test(str) và thuộc tính RegExp.$n đều có thể có tác dụng phụ, vì vậy việc truy cập các thuộc tính đặc biệt này cần được thực hiện ngay lập tức, nếu không kết quả có thể không như mong đợi.
Thông số kỹ thuật
| Specification |
|---|
| Legacy RegExp features> # additional-properties-of-the-regexp-constructor> |