Phương thức JavaScript String matchAll () trả về một trình lặp kết quả của việc so khớp một chuỗi với một biểu thức chính quy.
Cú pháp của matchAll()
phương thức là:
str.matchAll(regexp)
Đây, str
là một chuỗi.
Tham số matchAll ()
Các matchAll()
phương pháp có trong:
- regexp - Một đối tượng biểu thức chính quy (Đối số được chuyển đổi hoàn toàn thành
RegExp
nếu nó không phải làRegExp
đối tượng)
Lưu ý: Nếu RegExp
đối tượng không có /g
cờ, a TypeError
sẽ được ném.
Giá trị trả về từ matchAll ()
- Trả về một trình lặp có chứa các kết quả phù hợp bao gồm các nhóm thu thập.
Lưu ý : Mỗi mục của trình lặp trả về sẽ có các thuộc tính bổ sung sau:
groups
- Một đối tượng của các nhóm bắt được đặt tên có các khóa là tên và giá trị như các đối tượng đã bắt được khớp.index
- Chỉ mục tìm kiếm nơi kết quả được tìm thấy.input
- Bản sao của chuỗi tìm kiếm.
Ví dụ 1: Sử dụng matchAll ()
const string = "I am learning JavaScript not Java."; const re = /Java(a-z)*/gi; let result = string.matchAll(re); for (match of result) ( console.log(match); )
Đầu ra
('JavaScript', index: 14, input: 'Tôi đang học JavaScript không phải Java.', Groups: undefined) ('Java', index: 29, input: 'Tôi đang học JavaScript chứ không phải Java.', Groups: undefined)
Ở đây, trình lặp trả về được lặp lại bằng cách sử dụng for… of
vòng lặp.
Ví dụ 2: Sử dụng matchAll để nắm bắt các nhóm
const string = "My name is Albert. YOUR NAME is Soyuj."; // expression matches case-insensitive "name is"+ any alphabets till period (.) // using named capturing groups const re = /namesiss(?(a-zA-Z)+)./gi; let found = string.matchAll(re); for (const match of found)( console.log(`Found "$(match(0))" at index $(match.index). Captured name = $(match.groups('name'))`) )
Đầu ra
Tìm thấy "tên là Albert." ở chỉ mục 3. Captured name = Albert Đã tìm thấy "NAME là Soyuj." ở chỉ số 24. Tên được chụp = Soyuj
Ở đây, chúng tôi đã sử dụng một biểu thức chính quy để khớp với một phần nhất định của chuỗi. Chúng tôi có thể nắm bắt một số nhóm nhất định trong trận đấu bằng cách sử dụng matchAll()
tốt hơn match()
.
Đề xuất Đọc: Đối sánh chuỗi JavaScript ()