Kaedah JavaScript String matchAll () mengembalikan iterator hasil memadankan rentetan dengan ungkapan biasa.
Sintaks matchAll()
kaedahnya adalah:
str.matchAll(regexp)
Di sini, str
adalah tali.
matchAll () Parameter
The matchAll()
Cara mengambil masa dalam:
- regexp - Objek ekspresi biasa (Hujah secara implisit ditukar menjadi
RegExp
jikaRegExp
objek bukan objek)
Catatan: Jika RegExp
objek tidak mempunyai /g
bendera, TypeError
akan dilemparkan.
Nilai pulangan dari matchAll ()
- Mengembalikan iterator yang mengandungi padanan termasuk kumpulan penangkap.
Catatan : Pengulangan yang dikembalikan setiap item akan mempunyai sifat tambahan berikut:
groups
- Objek kumpulan penangkap bernama yang mempunyai kunci sebagai nama dan nilai sebagai padanan yang ditangkap.index
- Indeks carian di mana hasilnya dijumpai.input
- Salinan rentetan carian.
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); )
Pengeluaran
('JavaScript', indeks: 14, input: 'Saya belajar JavaScript bukan Java.', Kumpulan: undefined) ('Java', indeks: 29, input: 'Saya belajar JavaScript bukan Java.', Kumpulan: undefined)
Di sini, iterator yang dikembalikan berulang kali menggunakan for… of
loop.
Contoh 2: Menggunakan matchAll untuk menangkap kumpulan
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'))`) )
Pengeluaran
Dijumpai "nama Albert." pada indeks 3. Nama yang ditangkap = Albert Ditemui "NAMA adalah Soyuj." pada indeks 24. Nama yang ditangkap = Soyuj
Di sini, kami telah menggunakan ungkapan biasa untuk mencocokkan bahagian rentetan tertentu. Kami dapat menangkap kumpulan tertentu dalam perlawanan menggunakan matchAll()
lebih baik daripada match()
.
Bacaan yang Disyorkan: Pertandingan Rentetan JavaScript ()