Metode JavaScript String matchAll () mengembalikan iterator hasil pencocokan string dengan ekspresi reguler.
Sintaks dari matchAll()
metode ini adalah:
str.matchAll(regexp)
Ini, str
adalah sebuah string.
Parameter matchAll ()
The matchAll()
Metode mengambil di:
- regexp - Objek ekspresi reguler (Argumen secara implisit diubah menjadi
RegExp
jika itu bukanRegExp
objek)
Catatan: Jika RegExp
objek tidak memiliki /g
bendera, a TypeError
akan dilempar.
Kembalikan nilai dari matchAll ()
- Mengembalikan iterator yang berisi pertandingan termasuk grup penangkap.
Catatan : Setiap item iterator yang dikembalikan akan memiliki properti tambahan berikut:
groups
- Sebuah objek dari kelompok penangkap bernama memiliki kunci sebagai nama dan nilai sebagai pertandingan yang diambil.index
- Indeks pencarian tempat hasil ditemukan.input
- Salinan string pencarian.
Contoh 1: Menggunakan 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); )
Keluaran
('JavaScript', indeks: 14, masukan: 'Saya sedang belajar JavaScript bukan Java.', Groups: undefined) ('Java', index: 29, input: 'I am learning JavaScript bukan Java.', Groups: undefined)
Di sini, iterator yang dikembalikan diiterasi menggunakan for… of
loop.
Contoh 2: Menggunakan matchAll untuk menangkap grup
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'))`) )
Keluaran
Menemukan "nama Albert." pada indeks 3. Nama yang diambil = Albert Menemukan "NAME is Soyuj." pada indeks 24. Nama yang diambil = Soyuj
Di sini, kami telah menggunakan ekspresi reguler untuk mencocokkan bagian tertentu dari string. Kami dapat menangkap kelompok tertentu dalam pertandingan menggunakan matchAll()
lebih baik dari match()
.
Bacaan yang Direkomendasikan: JavaScript String match ()